> For the complete documentation index, see [llms.txt](https://docs.solapayments.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.solapayments.com/api/reporting.md).

# Reporting API

## Overview <a href="#overview" id="overview"></a>

The Sola Reporting API enables you to generate transaction reports based on specified parameters, such as date ranges. Reports can be created for single accounts or multiple accounts.

### Credentials <a href="#credentials" id="credentials"></a>

| Parameter | Description | Comment                               |
| --------- | ----------- | ------------------------------------- |
| xKey      | Credential  | Max Size: 250 Alphanumeric Characters |

### Universally Required Parameters <a href="#universally-required-parameters" id="universally-required-parameters"></a>

| Parameter        | Description                     | Comment                              |
| ---------------- | ------------------------------- | ------------------------------------ |
| xVersion         | Gateway API version             | The current version is 5.0.0         |
| xSoftwareName    | The name of your software       |                                      |
| xSoftwareVersion | Version number of your software | 2.1                                  |
| xCommand         | Transaction type                | Samples: report:all, report:approved |

### Other Parameters

| Parameter          | Description                                                                                                                    | Comment                                                                                                                                                |
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| xReturnDownloadURL | A boolean flag indicating if response should include `xReportURL` to use for downloading the results instead of `xReportData`. | If you are running reports that are returning more than 5MB of data we recommend that you use this parameter. The URL returned is valid for 5 minutes. |

### Endpoints <a href="#endpoints" id="endpoints"></a>

Base URL: [https://x1.cardknox.com](https://x1.cardknox.com/)

Sola reporting API allows you to send the data in **FormData** and **JSON** formats.\
Add to the base URL any of the following formats to indicate which format you are sending it as:

| FormData | /report     | <https://x1.cardknox.com/report>     |
| -------- | ----------- | ------------------------------------ |
| JSON     | /reportjson | <https://x1.cardknox.com/reportjson> |

#### Request Method <a href="#request-method" id="request-method"></a>

Method: POST\
The Cardknox gateway requires the POST method to be used for enhanced security. We do not support the GET method.

### Pagination <a href="#pagination" id="pagination"></a>

1. Submit the first request.
2. If xRecordsReturned equals xReportingMaxTransactions, submit another report request and adjust the beginning date and time according to the last transaction returned.

### Filter Options <a href="#filter-options" id="filter-options"></a>

Available filtering options include the following:

**Required Parameters**

| Parameter   | Description                                                      | Sample Value                                                                                                                             |
| ----------- | ---------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| xgetnewest  | Returns the most recent transactions in the requested date range | True/False                                                                                                                               |
| xmaxrecords | Sets the maximum number of records to return on the report       | <p>Integer value between 1 – 1000\*</p><p>If the date range on the report is within 24 hours you can request up to 5000 transactions</p> |

For date-based reports, you can filter results using the following operators for any of the reporting fields:

| Parameter | Operator  | Description                                                                                          | Example               |
| --------- | --------- | ---------------------------------------------------------------------------------------------------- | --------------------- |
| ai        | In        | Use for an exact match.                                                                              | xBillCountry=aiCanada |
| a=        | Like      | Use for fields that include your search string, but sometimes also include other information.        | xAmount=a=40          |
| a!        | Not Like  | Use for fields that do not include your search string, but sometimes also include other information. | xCardLastFour=a!4444  |
| an        | Not In    | Shows results that don’t have the value you enter.                                                   | xBillPhone=an212      |
| as        | Ends With | Use when you know what your value starts with.                                                       | xName=asJane          |
| ae        | Ends With | Use when you know what your value ends with.                                                         | xEmail=aeOrg          |

### Customize report parameters  <a href="#customize-report-parameters" id="customize-report-parameters"></a>

To customize the transaction parameters included in a generated report, you can utilize the "xFields" parameter and specify the desired field names. Refer to the available parameters listed [here](https://docs.solapayments.com/#response-parameters).

| Parameter | Description                                      | Sample Value                                                                                |
| --------- | ------------------------------------------------ | ------------------------------------------------------------------------------------------- |
| xFields   | Specify parameters to be returned in the report. | xrefnum, xcommand, xname, xmaskedcardnumber, xtoken, xamount, xentereddate, xresponseresult |

#### /GetReconReport <a href="#getreconreport" id="getreconreport"></a>

Gets a list of Invoices for a specific Cardknox MID with an option to get data for multiple MIDs. This includes all invoices charged to the merchant by Sola. GoPlus merchants only.

Method: POST

Authentication is required.

#### Request Body (JSON) <a href="#response-body-json" id="response-body-json"></a>

| **Parameter**    | **Required** | **Type** | **Description**                                                                                                        |
| ---------------- | ------------ | -------- | ---------------------------------------------------------------------------------------------------------------------- |
| FromDate         | yes          | Date     | The start date to pull invoices for                                                                                    |
| ToDate           | yes          | Date     | The end date to pull invoices for. Can be max 6 months from `FromDate` if `IsMultiMidReport` is false, 31 days if true |
| IsMultiMidReport | no           | Boolean  | If true, data will be returned for all mids user has access to                                                         |

**Sample Request**

```json
{
    "FromDate": "2026-04-15",
    "ToDate": "2026-04-19",
    "IsMultiMidReport": false
}
```

#### Response Body (JSON) <a href="#response-body-json-.1" id="response-body-json-.1"></a>

| **Parameter** | **Type**              | **Description**                                                                                               | **Valid Values** |
| ------------- | --------------------- | ------------------------------------------------------------------------------------------------------------- | ---------------- |
| Result        | char                  | The result of the API call. **S** represents success, **E** represents an error.                              | S, E             |
| RefNum        | string                | A unique request ID.                                                                                          |                  |
| Error         | string                | If the `Result` parameter contains a value of **E**, this parameter will contain any relevant error messages. |                  |
| InvoiceList   | array of json objects | The invoices for the requested billing date range                                                             | See fields below |

| **Invoice Field**    | **Type** | **Description**                                                                                                                           | **Valid Values**                          |
| -------------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- |
| InvoiceId            | string   | The unique id of this invoice                                                                                                             | numeric                                   |
| InvoiceDescription   | string   | The description of the fees being charged on the invoice                                                                                  |                                           |
| SolaMID              | string   | The Sola MID the fee was billed to                                                                                                        | numeric, valid Sola MID                   |
| ProcessorMID         | string   | The Processor MID of the account the fee was billed to                                                                                    | numeric, valid Fiserv or ACHQ MID         |
| DBA                  | string   | The account’s business name                                                                                                               |                                           |
| BillingStatus        | string   | The current status of the invoice                                                                                                         | Completed, Bounced, paid, paid-reconciled |
| BillingDate          | date     | The date the fees were billed                                                                                                             |                                           |
| TransactionStartDate | datetime | Only returned on invoices where the description is “Processing Fees”. The start date of the transactions the fees were charged for        |                                           |
| TransactionEndDate   | datetime | Only returned on invoices where the description is “Processing Fees”. The end date of the transactions the fees were charged for          |                                           |
| Processor            | string   | The processor of the account/SolaMID the invoice is for                                                                                   | Go Plus, ACHQ                             |
| ProcessingFees       | decimal  | The amount of the fees charged for transaction processing                                                                                 |                                           |
| OtherFees            | decimal  | The amount of fees charged for other services                                                                                             |                                           |
| TotalFees            | decimal  | The total amount of the fees charged                                                                                                      |                                           |
| Batches              | string   | Only returned on invoices where the description is “Processing Fees” for accounts billed per batch. The batches the fees were charged for | comma-delimited list of batch numbers     |

**Sample Response**

```json
{
	"refNum": "ra501002009",
	"result": "S",
	"error": "",
	"invoiceList": [
		{
			"invoiceId": "21015",
			"invoiceDescription": "Processing Fees",
			"solaMID": "999000017",
			"processorMID": "855956893512",
			"dba": "Test Go Plus",
			"billingStatus": "Complete",
			"billingDate": "2026-05-27",
			"transactionStartDate": "2026-05-01T21:32:46",
			"transactionEndDate": "2026-05-28T12:08:59",
			"processor": "Go Plus",
			"processingFees": 4.85,
			"otherFees": 0.00,
			"totalFees": 4.85,
			"batches": "37927929,5010404"
		},
        {
			"invoiceId": "279308.0",
			"invoiceDescription": "Processing Fees, Return Fee",
			"solaMID": "36977",
			"processorMID": "2001",
			"dba": "Test Retry, TID 10",
			"billingStatus": "Complete",
			"billingDate": "2026-05-29",
			"processor": "ACHQ",
			"processingFees": 3.0,
			"otherFees": 25.0,
			"totalFees": 28.0,
			"batches": "5005327"
		}
	]
}
```

## Report Types <a href="#report-types" id="report-types"></a>

Available report types include the following:

### Date-Based Reports <a href="#date-based-reports" id="date-based-reports"></a>

#### Report:Approved

xCommand: **Report:Approved**

The Report:Approved command returns the following transactions:

* CC:Sale
* CC:Capture
* CC:PostAuth
* CC:Save
* CC:Credit
* CC:Refund

The Report:Approved command does not return authorization-only transactions that have not been captured.

**Required Parameters**

| Parameter  | Description                                                        | Sample Value                                |
| ---------- | ------------------------------------------------------------------ | ------------------------------------------- |
| xBeginDate | Transaction begin date in YYYY-MM-DD or YYYY-MM-DD HH:MM:SS format | <p>2020-01-01</p><p>2019-08-15 09:00:00</p> |
| xEndDate   | Transaction end date in YYYY-MM-DD or YYYY-MM-DD HH:MM:SS format   | <p>2019-10-31</p><p>2020-06-30 12:00:00</p> |

#### Report:Declined

xCommand: **Report:Declined**

The Report:Declined command returns the following transactions:

* CC:Sale
* CC:AuthOnly
* CC:Capture
* CC:PostAuth
* CC:Save
* CC:Credit
* CC:Refund

**Required Parameters**

| Parameter  | Description                                                        | Sample Value                                |
| ---------- | ------------------------------------------------------------------ | ------------------------------------------- |
| xBeginDate | Transaction begin date in YYYY-MM-DD or YYYY-MM-DD HH:MM:SS format | <p>2020-01-01</p><p>2019-08-15 09:00:00</p> |
| xEndDate   | Transaction end date in YYYY-MM-DD or YYYY-MM-DD HH:MM:SS format   | <p>2019-10-31</p><p>2020-06-30 12:00:00</p> |

#### Report:Auth

xCommand: **ReportAuth**

The Report:Auth command returns the following transaction:

* CC:AuthOnly

The ReportAuth command only returns approved authorizations.

**Required Parameters**

| Parameter  | Description                                                        | Sample Value                                |
| ---------- | ------------------------------------------------------------------ | ------------------------------------------- |
| xBeginDate | Transaction begin date in YYYY-MM-DD or YYYY-MM-DD HH:MM:SS format | <p>2020-01-01</p><p>2019-08-15 09:00:00</p> |
| xEndDate   | Transaction end date in YYYY-MM-DD or YYYY-MM-DD HH:MM:SS format   | <p>2019-10-31</p><p>2020-06-30 12:00:00</p> |

#### Report:All

xCommand: **Report:All**

The Report:All command returns the following transactions:

* CC:Sale
* CC:AuthOnly
* CC:Capture
* CC:PostAuth
* CC:Save
* CC:Credit
* CC:Refund

**Required Parameters**

| Parameter  | Description                                                        | Sample Value                                |
| ---------- | ------------------------------------------------------------------ | ------------------------------------------- |
| xBeginDate | Transaction begin date in YYYY-MM-DD or YYYY-MM-DD HH:MM:SS format | <p>2020-01-01</p><p>2019-08-15 09:00:00</p> |
| xEndDate   | Transaction end date in YYYY-MM-DD or YYYY-MM-DD HH:MM:SS format   | <p>2019-10-31</p><p>2020-06-30 12:00:00</p> |

{% hint style="info" %}
**Note**: You can run a report against all accounts by adding the search parameter xSecondaryKeys:\[comma-delimited xKeys] and use all the xKeys for all accounts for the following date-based reports
{% endhint %}

| Parameter      | Description                                                                                                          | Sample Value                                                                                                                           |
| -------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| xSecondaryKeys | <p>Run a report for secondary accounts.</p><p>For multiple account keys, you can include comma-separated values.</p> | Bread\_Butter\_xxxdxxxecbxxxxaxxxdbexxx, Other\_Account\_xxxxfxxxexxfxxxfxbxxx, Yet\_Another\_Account\_xxxbexaxxddxxbabbxexcxxxafxfexx |

Optional Field: xBatch:\[batch#]to get only the transactions of a specific batch.

#### Report:Deposit

xCommand: **Report:Deposit**

{% hint style="warning" %}
The **Report:Deposit** command will only return valid responses for accounts that have ongoing ACHQ activity. The Deposit ID given as a parameter must be an ACHQ deposit ID and the values shown in the response are only pertaining to ACHQ transaction activity.
{% endhint %}

The Report:Deposit command returns the following values:

* Deposit Id
* Deposit Date
* Total Amount
* Transactions
  * Refnum
  * Amount

**Required Parameters**

| **Parameter** | **Description**                                        | **Sample Value**                            |
| ------------- | ------------------------------------------------------ | ------------------------------------------- |
| xDepositId\*  |                                                        |                                             |
| xBeginDate\*  | Begin date in YYYY-MM-DD or YYYY-MM-DD HH:MM:SS format | <p>2020-01-01</p><p>2019-08-15 09:00:00</p> |
| xEnd Date\*   | End date in YYYY-MM-DD or YYYY-MM-DD HH:MM:SS format   | <p>2019-10-31</p><p>2020-06-30 12:00:00</p> |

\*Either xDepositId or xBeginDate and xEndDate are required.

### Transaction-Based Reports <a href="#transaction-based-reports" id="transaction-based-reports"></a>

Single transaction

* report:transaction

xCommand: **Report:Transaction**

**Required Parameters**

| Parameter | Description                                                                                                                                            | Sample Value                                       |
| --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------- |
| xRefnum   | <p>Reference number</p><p>Multiple reference numbers are comma delimited.</p><p>This value is required only if you do not enter an Invoice number.</p> | <p>r10000001</p><p>r10000001,r2000001,r3000001</p> |

#### Multiple transactions

* report:transactions

xCommand: **Report:Transactions**

{% hint style="info" %}
Reports queried without `xBeginDate` and `xEndDate` will only return transactions from the past 2 years.
{% endhint %}

**Required Parameters**

| Parameter | Description                                                                                                                                            | Sample Value                                       |
| --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------- |
| xRefnum   | <p>Reference number</p><p>Multiple reference numbers are comma delimited.</p><p>This value is required only if you do not enter an Invoice number.</p> | <p>r10000001</p><p>r10000001,r2000001,r3000001</p> |
| xInvoice  | <p>Invoice number</p><p>Multiple invoice numbers are comma delimited.</p><p>This value is required only if you do not enter a Reference number.</p>    | <p>1234</p><p>1234,5678,9012</p>                   |

#### Related Transactions <a href="#related-transactions" id="related-transactions"></a>

xCommand: **Report:Related**

**Required Parameters**

| Parameter | Description                                                                                                                                            | Sample Value                                       |
| --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------- |
| xRefnum   | <p>Reference number</p><p>Multiple reference numbers are comma delimited.</p><p>This value is required only if you do not enter an Invoice number.</p> | <p>r10000001</p><p>r10000001,r2000001,r3000001</p> |

#### Gift:Approved <a href="#gift-approved" id="gift-approved"></a>

xCommand: **Report:GiftApproved**

**Required Parameters**

| xKey             | Your Sola API key                         | Max Size: 250 Alphanumeric Characters       |
| ---------------- | ----------------------------------------- | ------------------------------------------- |
| xCommand         | Sola transaction type                     | Report:GiftApproved                         |
| xBeginDate       | Beginning date of range                   | <p>2020-01-01</p><p>2019-08-15 09:00:00</p> |
| xEndDate         | Ending date of range                      | <p>2020-01-01</p><p>2019-08-15 09:00:00</p> |
| xSoftwareName    | Name of your software                     | \[xsoftwarecredentials]                     |
| xSoftwareVersion | Version number of your software           | The current version is 4.5.8                |
| xFields          | Optional. If not used, returns all fields |                                             |

**Response Fields**

| xResult          | “A”           |
| ---------------- | ------------- |
| xStatus          | “Approved”    |
| xError           | ““            |
| xRefNum          | "10000016875" |
| xRecordsReturned | “20”          |
| xReportData      |               |

#### Gift:Summary <a href="#gift-summary" id="gift-summary"></a>

xCommand: **Report:GiftSummary**

**Required Parameters**

| xKey             | Your Sola API key                         | \[xkeycredentials]                          |
| ---------------- | ----------------------------------------- | ------------------------------------------- |
| xCommand         | Sola transaction type                     | Report:GiftSummary                          |
| xBeginDate       | Beginning date of range                   | <p>2020-01-01</p><p>2019-08-15 09:00:00</p> |
| xEndDate         | Ending date of range                      | <p>2020-01-01</p><p>2019-08-15 09:00:00</p> |
| xSoftwareName    | Name of your software                     | \[xsoftwarecredentials]                     |
| xSoftwareVersion | Version number of your software           | The current version is 4.5.8                |
| xFields          | Optional. If not used, returns all fields |                                             |

**Response Fields**

| xResult          | “A”           |
| ---------------- | ------------- |
| xStatus          | “Approved”    |
| xError           | ““            |
| xRefNum          | "10000016875" |
| xRecordsReturned | “20”          |
| xReportData      |               |

#### Liability <a href="#liability" id="liability"></a>

xCommand: **Report:Liability**

**Required Parameters**

| xKey             | Your Sola API key               | \[xkeycredentials]           |
| ---------------- | ------------------------------- | ---------------------------- |
| xCommand         | Sola transaction type           | Report:Liability             |
| xSoftwareName    | Name of your software           | \[xsoftwarecredentials]      |
| xSoftwareVersion | Version number of your software | The current version is 4.5.8 |

**Response Fields**

| Parameter        | Example       |
| ---------------- | ------------- |
| xResult          | “A”           |
| xStatus          | “Approved”    |
| xError           | ““            |
| xRefNum          | "10000016875" |
| xRecordsReturned | “20”          |
| xReportData      |               |

### Batch Report <a href="#batch-report" id="batch-report"></a>

Obtain batch summary by date

* report:batch

xCommand: **Report:Batch**

**Required Parameters**

| Parameter  | Description                                            | Sample Value                                |
| ---------- | ------------------------------------------------------ | ------------------------------------------- |
| xBeginDate | Begin date in YYYY-MM-DD or YYYY-MM-DD HH:MM:SS format | <p>2020-01-01</p><p>2019-08-15 09:00:00</p> |
| xEndDate   | End date in YYYY-MM-DD or YYYY-MM-DD HH:MM:SS format   | <p>2019-10-31</p><p>2020-06-30 12:00:00</p> |

## Send a Receipt for a Completed Transaction <a href="#send-a-receipt-for-a-completed-transaction" id="send-a-receipt-for-a-completed-transaction"></a>

You can use the **Reporting API** feature to send a receipt for a completed transaction.

### Reporting URL <a href="#reporting-url" id="reporting-url"></a>

Use the following Sola URL: <https://x1.cardknox.com/report>

### Required Variables: <a href="#required-variables" id="required-variables"></a>

| Parameter        | Description                          | Comments                              |
| ---------------- | ------------------------------------ | ------------------------------------- |
| xKey             | Credential                           | Max Size: 250 Alphanumeric Characters |
| xVersion         | Gateway API version                  | The current version is 4.5.8          |
| xSoftwareName    | The name of your software            |                                       |
| xSoftwareVersion | Version number of your software      |                                       |
| xCommand         | Transaction type                     | Report:Transaction                    |
| xRefnum          | Reference number                     |                                       |
| xEmail           | Email address of receipt destination |                                       |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.solapayments.com/api/reporting.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
