Referência do resultado da transação
O TransactionResultCallback entrega o resultado de initSale e initRefund. Ele é chamado uma vez por operação, imediatamente antes de a Activity do SDK ser fechada. O contrato não lança exceções para o integrador — as falhas aparecem no valor e na mensagem do resultado.
Campos do resultado
| Campo | Tipo | Descrição |
|---|---|---|
result | String? | Código de resultado padronizado e curto. |
resultMessage | String? | Descrição legível do resultado. |
payload | Any? | Dados específicos da operação. Faça o cast para o tipo da operação. |
Códigos de resultado
| Código | Significado |
|---|---|
"00" | Transação aprovada. |
"1-*" | Erro do terminal (POS). |
"33-*" | Erro de host — um erro HTTP do serviço de pagamento (SEP) ou uma recusa do emissor. |
Trate "00" como aprovação e qualquer outro valor como não aprovação, exibindo resultMessage quando disponível. Terminais mais antigos ainda podem retornar o prefixo legado "4-*" para erros de host — trate "4-*" e "33-*" como equivalentes. Para o catálogo completo de erros, consulte a Referência de códigos de erro; para saber como reagir a cada falha, consulte Solução de problemas.
Payload por operação
Faça o cast de payload para o tipo que corresponde à operação. Acessar campos sem o cast pode lançar um ClassCastException.
Pagamentos — IPaymentResponse
Retornado por initSale (crédito, débito, voucher, Pix). Campos principais:
| Campo | Tipo | Descrição |
|---|---|---|
paymentId | String? | Identificador único da transação. Armazene-o para permitir um estorno direto. |
orderId | String? | Identificador do pedido. |
amount | String? | Valor da transação. |
currency | String? | Moeda. |
status | String? | Status da transação. |
paymentMethod | String? | Meio de pagamento usado. |
authorizationCode | String? | Código de autorização. |
authorizedAt | String? | Data e hora da autorização. |
acquirer | String? | Adquirente. |
transactionId / acquirerTransactionId | String? | Identificadores da transação. |
reasonCode / reasonMessage | String? | Código e mensagem do motivo. |
emv | String? | Dados EMV. |
Estornos — ICancelPaymentResponse
Retornado por initRefund. Campos principais:
| Campo | Tipo | Descrição |
|---|---|---|
paymentId | String? | Identificador da transação original que foi estornada. |
amount | Int? | Valor estornado. |
status | String? | Status do estorno. |
authorizationCode | String? | Código de autorização do estorno. |
traceNumber | Int? | Número de rastreio. |
canceledAt | String? | Data e hora do cancelamento. |
reasonCode / reasonMessage | String? | Código e mensagem do motivo. |
Exemplo
val onResult = TransactionResultCallback { result ->
when (result.result) {
"00" -> when (val payload = result.payload) {
is IPaymentResponse -> { /* handle an approved payment */ }
is ICancelPaymentResponse -> { /* handle an approved refund */ }
else -> { /* ... */ }
}
else -> { /* non-approval — show result.resultMessage */ }
}
}