Relatórios: Totais, Detalhes e Turnos
Este guia explica como recuperar relatórios operacionais de um POS Integrado usando a operação GetReports. Ela vale para os modos de conexão SDK (USB / HTTP) e Cloud2Cloud. Só o método de criação do Connector muda.
O que são os GetReports
A função GetReports permite que o sistema de automação solicite dados de relatórios consolidados ou detalhados diretamente do terminal POS. Você especifica o tipo de relatório. O terminal retorna os dados e, opcionalmente, pode imprimi-los. Os tipos de relatório são Totals (totais agregados de transações), Detailed (registros individuais de transações) e Shift (transações agrupadas por turno).
O relatório deve ser solicitado pelo menos dois minutos após a última venda ou troca de turno para garantir a sincronização.
Antes de começar
Antes de recuperar relatórios:
- Um Connector deve ser criado e validado com
Polling - O Modo POS Integrado deve estar ativo
Passo 1: Execute a requisição de relatório
Para recuperar um relatório operacional, chame a operação GetReports com o Type desejado.
Por motivos técnicos, os relatórios devem ser solicitados pelo menos dois minutos após a última venda ou troca de turno. Assim, todos os dados das transações são sincronizados corretamente no terminal.
Os seguintes parâmetros estão disponíveis para a operação GetReports:
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
Type | Enum | Sim | Tipo de relatório: Totals (resumo), Detailed (detalhado) ou Shift (por período operacional). |
PrintOnPos | Boolean | Não | Se true, o relatório é impresso no terminal POS. Se false, os dados são retornados no campo ReportDetails. |
O exemplo a seguir demonstra como solicitar um relatório de resumo para impressão direta no dispositivo:
var reportRequest = new ReportsRequest
{
Type = ReportType.Totals,
PrintOnPos = true
};
var reportResult = await connector.GetReportsAsync(reportRequest);O exemplo a seguir demonstra como recuperar dados detalhados de transações para o seu sistema de automação processar:
var reportRequest = new ReportsRequest
{
Type = ReportType.Details,
PrintOnPos = false
};
var reportResult = await connector.GetReportsAsync(reportRequest);Passo 2: Trate a resposta
O POS retorna uma resposta estruturada correspondente ao tipo de relatório solicitado. Se PrintOnPos foi definido como false, o campo ReportDetails conterá os dados em JSON.
Abaixo está um exemplo de resposta bem-sucedida para uma requisição de relatório detalhado:
{
"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"
}
]
}Sempre verifique o Code e a Message antes de analisar a estrutura de ReportDetails.
Próximos passos
- Gerenciamento de Turnos — Operações de turno e relatórios.
- Responsabilidade de Impressão — PrintOnPos e tratamento de recibos.