Processe um estorno
Este guia mostra como reverter uma transação aprovada anteriormente com initRefund.
Como funciona
Você inicia um estorno com initRefund. O parâmetro refundData define quem fornece o paymentId:
- Estorno direto — seu aplicativo fornece um
paymentIdconhecido. - Estorno indireto — o usuário localiza a transação nas telas do SDK.
O resultado chega por um callback (consulte Resultado da transação). É necessário um warm-up bem-sucedido (WarmUpStatus.Success).
Estornos se aplicam somente a transações de crédito e débito. Transações Pix e voucher não podem ser estornadas.
Antes de começar
Para um estorno direto, mantenha seu próprio histórico de transações. O SDK não expõe transações passadas, e o paymentId retornado no resultado da venda é a chave para estorná-la. Armazene o paymentId — você não precisa armazenar dados do cartão.
Estorno direto
Informe o paymentId que você persistiu da venda original:
ApoloSdk.getClient().initRefund(
context = activity,
refundData = Refund(paymentId = paymentIdFromYourRecord),
onResult = { result -> /* see Transaction result */ },
)Estorno indireto
Omita refundData (ou passe um paymentId vazio) para que o SDK conduza a busca nas próprias telas:
ApoloSdk.getClient().initRefund(
context = activity,
onResult = { result -> /* see Transaction result */ },
)Leia o resultado
O resultado chega em onResult. Em caso de sucesso, o payload é um ICancelPaymentResponse. Consulte Resultado da transação para os códigos e os campos do payload.
Próximos passos
- Referência do resultado da transação — códigos de resultado e campos do payload.