Pular para o conteúdo principal

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étodoUso
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.