Reports: Totals, Details, and Shifts
This guide explains how to retrieve operational reports from an Integrated POS using the GetReports operation. It applies to both the SDK (USB / HTTP) and Cloud2Cloud connection modes; only the connector creation method differs.
What are GetReports
The GetReports function allows the automation system to request consolidated or detailed report data directly from the POS terminal. You specify the report type; the terminal returns the data and can optionally print it. Report types are Totals (aggregated transaction totals), Detailed (individual transaction records), and Shift (transactions grouped by shift).
The report must be requested at least two minutes after the last sale or shift change to ensure synchronization.
Before you begin
Before retrieving reports:
- A Connector must be created and validated using
Polling - Integrated POS Mode must be active
Step 1: Execute a report request
To retrieve an operational report, call the GetReports operation with the desired Type.
For technical reasons, reports must be requested at least two minutes after the last sale or shift change to ensure all transaction data is correctly synchronized on the terminal.
The following parameters are available for the GetReports operation:
| Parameter | Type | Required | Description |
|---|---|---|---|
Type | Enum | Yes | Report type: Totals (summary), Detailed (itemized), or Shift (by operational period). |
PrintOnPos | Boolean | No | If true, the report is printed on the POS terminal. If false, the data is returned in the ReportDetails field. |
The following example demonstrates how to request a summary report to be printed directly on the device:
var reportRequest = new ReportsRequest
{
Type = ReportType.Totals,
PrintOnPos = true
};
var reportResult = await connector.GetReportsAsync(reportRequest);The following example demonstrates how to retrieve itemized transaction data to be processed by your automation system:
var reportRequest = new ReportsRequest
{
Type = ReportType.Details,
PrintOnPos = false
};
var reportResult = await connector.GetReportsAsync(reportRequest);Step 2: Handle the response
The POS returns a structured response matching the requested report type. If PrintOnPos was set to false, the ReportDetails field will contain the JSON data.
Below is an example of a successful response for a detailed report request:
{
"Code": 0,
"Message": "APPROVED",
"CommerceCode": "1234567890",
"TerminalId": "GET00123",
"ReportDetails": [
{
"authorizationCode": "551437",
"paymentId": "789456123",
"opReasonMessageStatus": "APPROVED",
"timestamp": "2025-08-25T16:11:23.000Z",
"brandType": "Mastercard",
"cardLastNumber": "1234",
"operationValue": "5000",
"operation": "Credit"
}
]
}Always verify the Code and Message before parsing the ReportDetails structure.
Next steps
- Shift Management — Shift operations and reports.
- Printing Responsibility — PrintOnPos and receipt handling.