Getnet DocsGetnet Docs

Códigos de Resposta e Erro

Esta página resume como o SDK representa os resultados das operações e as condições de erro. Todas as chamadas de repositório retornam um wrapper RepositoryResult<T> que obriga você a tratar o sucesso e a falha explicitamente.

RepositoryResult<T>

RepositoryResult<T> é uma sealed class Kotlin com as seguintes ramificações:

  • Success<T>: A chamada foi concluída com sucesso.
    • Contém um payload data: T (por exemplo, PaymentResult, RefundResult, TpvInfo, TotalsResult, etc.).
  • ConnectionError: Ocorreu um problema de comunicação.
    • Causas típicas: o Get Smart SDK Payment Service não está em execução, o dispositivo está offline ou há um problema de conectividade com o host.
  • Cancelled: A operação foi cancelada.
    • Geralmente indica que o usuário abortou um fluxo interativo na interface (UI) do TPV. Inclui uma message legível por humanos.
  • ProtocolError: A requisição não pôde ser processada devido a um problema de integração ou mapeamento.
    • Inclui um type: ProtocolErrorType e uma description opcional.

Para padrões de tratamento idiomático e exemplos, consulte Conceitos Principais / Tratar Respostas e Erros.

ProtocolErrorType

Quando você recebe RepositoryResult.ProtocolError, o campo type é um dos seguintes valores (veja também o Glossário de Modelos de Dados):

  • MAPPING_DATA: Erro interno ao mapear os dados entre o SDK e o serviço em segundo plano (background service).
    • Ação: geralmente indica um estado inesperado; capture os logs e entre em contato com o suporte se o problema persistir.
  • MAPPING_DOMAIN: Há algo de errado com os dados que seu aplicativo enviou.
    • Ação: valide parâmetros como valores, moedas e identificadores.
  • TPV_NOT_INITIALIZED: Um erro crítico de configuração.
    • Ação: certifique-se de que InitializationRepository.initTpv() foi chamado com sucesso antes de realizar operações como pagamentos, estornos ou consultas de histórico.

Resultados em Nível de Negócio

Muitas chamadas bem-sucedidas ainda exigem que você verifique um resultado de negócio (business result) dentro do payload:

  • Operações de pagamento, estorno e pré-autorização retornam tipos de resultados selados (sealed result types) como PaymentResult, RefundResult e PreauthorizationResult, que distinguem:
    • Operações Accepted (autorizadas pelo host, com um payload Transaction).
    • Operações Denied (rejeitadas pelo host/banco, com um payload Transaction explicativo).
    • Erros de domínio específicos (por exemplo, RefundResult.ExceededAmount).
  • Consultas de histórico e totais retornam estruturas como GetTransactionsResult ou TotalsResult que indicam se há dados, mais páginas ou identificadores inválidos.

Sempre inspecione tanto o RepositoryResult<T> externo quanto o resultado de domínio interno para decidir o que mostrar na sua interface (UI) e quando tentar novamente ou escalar erros.