Consulta de Transações
Métodos do PosPinpad para consultar histórico de transações, totais e ciclos. Os limites operacionais estão em Pagamentos.
suspend fun getTransactionSummaries(filters: QueryFilterBuilder): TransactionSummaryResponse
suspend fun getTransactionSummary(id: String): TransactionSummary
suspend fun getTransactionStats(filters: QueryFilterBuilder): TransactionStats
suspend fun getTransactionCycles(filters: QueryFilterBuilder): TransactionCycleListResponse
O merchantId vem da sessão; não é preciso informá-lo.
getTransactionSummaries()
API unificada (GET /transactions/summaries) para buscar transações: histórico, pré-autorizações ou transações estornáveis — o que muda é o filtro. Use QueryFilterBuilder para montar os filtros dinâmicos. A paginação é por cursor.
val filters = QueryFilterBuilder()
.pagination(cursor = null, limit = 20, preloads = true) // preloads = true traz os ciclos (NSU, autorização)
.add(FilterField.STATUS, FilterOperator.EQ, "approved")
.add(FilterField.CREATED_AT, FilterOperator.GE, "2026-10-01")
val response = posPinpad.getTransactionSummaries(filters)
response.data.forEach { tx -> /* ... */ }
// Próxima página
response.metadata.nextCursor?.let { cursor ->
posPinpad.getTransactionSummaries(filters.copyOf().pagination(cursor = cursor, limit = 20, preloads = true))
}
Para estornar uma venda escolhida nesta listagem, veja Estorno a partir da listagem de vendas.
Métodos relacionados
| Método | Uso |
|---|---|
getTransactionSummary(id) | Detalhe de uma transação, com os ciclos preenchidos |
getTransactionStats(filters) | Totais do conjunto filtrado (count, approvedAmount). Não use pagination() |
getTransactionCycles(filters) | Busca por NSU (SYSTEM_TRACE_AUDIT_NUMBER), código de autorização ou RRN. Para busca parcial, use addContains |
QueryFilterBuilder.copyOf() cria uma cópia independente dos filtros, útil para disparar listagem e totais a partir da mesma base:
val base = QueryFilterBuilder().add(FilterField.CREATED_AT, FilterOperator.GE, "2026-10-01")
val lista = posPinpad.getTransactionSummaries(base.copyOf().pagination(limit = 20, preloads = true))
val totais = posPinpad.getTransactionStats(base.copyOf())
Busca por NSU e detalhe da transação encontrada:
val ciclos = posPinpad.getTransactionCycles(
QueryFilterBuilder().add(FilterField.SYSTEM_TRACE_AUDIT_NUMBER, FilterOperator.EQ, nsu)
)
val summaryId = ciclos.data.firstOrNull()?.transactionSummaryId
val transacao = summaryId?.let { posPinpad.getTransactionSummary(it) }
Enquanto houver transações pendentes, os totais vindos do backend podem não refletir tudo o que aconteceu no terminal.
Veja QueryFilterBuilder, TransactionSummary e TransactionStats.