Referencia del resultado de la transacción
TransactionResultCallback entrega el resultado de initSale e initRefund. Se invoca una vez por operación, justo antes de que se cierre la Activity del SDK. El contrato no lanza excepciones al integrador: las fallas se reflejan en el valor y el mensaje del resultado.
Campos del resultado
| Campo | Tipo | Descripción |
|---|---|---|
result | String? | Código de resultado corto y estandarizado. |
resultMessage | String? | Descripción legible del resultado. |
payload | Any? | Datos específicos de la operación. Haz el cast al tipo de la operación. |
Códigos de resultado
| Código | Significado |
|---|---|
"00" | Transacción aprobada. |
"1-*" | Error del terminal (POS). |
"33-*" | Error del host: un error HTTP del servicio de pago (SEP) o un rechazo del emisor. |
Trata "00" como aprobación y cualquier otro valor como una no aprobación, mostrando resultMessage cuando esté disponible. Los terminales antiguos pueden seguir devolviendo el prefijo heredado "4-*" para los errores del host: trata "4-*" y "33-*" como equivalentes. Para el catálogo completo de errores, consulta Referencia de códigos de error; para saber cómo reaccionar a cada falla, consulta Solución de problemas.
Payload por operación
Haz el cast de payload al tipo que corresponde a la operación. Acceder a los campos sin el cast puede provocar una ClassCastException.
Pagos — IPaymentResponse
Lo devuelve initSale (crédito, débito, voucher, Pix). Campos principales:
| Campo | Tipo | Descripción |
|---|---|---|
paymentId | String? | Identificador único de la transacción. Guárdalo para habilitar un reembolso directo. |
orderId | String? | Identificador del pedido. |
amount | String? | Monto de la transacción. |
currency | String? | Moneda. |
status | String? | Estado de la transacción. |
paymentMethod | String? | Método de pago usado. |
authorizationCode | String? | Código de autorización. |
authorizedAt | String? | Fecha y hora de la autorización. |
acquirer | String? | Adquirente. |
transactionId / acquirerTransactionId | String? | Identificadores de la transacción. |
reasonCode / reasonMessage | String? | Código y mensaje del motivo. |
emv | String? | Datos EMV. |
Reembolsos — ICancelPaymentResponse
Lo devuelve initRefund. Campos principales:
| Campo | Tipo | Descripción |
|---|---|---|
paymentId | String? | Identificador de la transacción original que se reembolsó. |
amount | Int? | Monto reembolsado. |
status | String? | Estado del reembolso. |
authorizationCode | String? | Código de autorización del reembolso. |
traceNumber | Int? | Número de traza. |
canceledAt | String? | Fecha y hora de la cancelación. |
reasonCode / reasonMessage | String? | Código y mensaje del motivo. |
Ejemplo
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 */ }
}
}