Skip to main content
Este é o SDK oficial de checkout para Android (com.dodopayments.api:checkout-android), para abrir o checkout hospedado do Dodo. Ele é diferente do SDK Kotlin de backend, que chama a API do Dodo Payments a partir do seu servidor.

Checkout Sessions API

Crie o checkout_url que este SDK abre

Mobile Integration Guide

Práticas recomendadas para fluxos de checkout móvel
O SDK para Android abre o checkout hospedado do Dodo em uma Chrome Custom Tab usando androidx.browser.customtabs. Ele não contém nenhum código de rede e não armazena nenhuma chave de API. Você passa um checkoutUrl da sessão de checkout do seu backend, e o SDK retorna um CheckoutResult tipado quando o usuário conclui ou abandona o fluxo. Requisitos: minSdk 23, Kotlin, Java 17.

Instalação

1

Add the Dependency

build.gradle.kts
2

Register a Callback URL Scheme

Defina seu esquema de callback como um placeholder de manifesto do Gradle. O manifesto da própria biblioteca já declara o intent filter da atividade de redirecionamento usando o token ${dodoCallbackScheme}, portanto esta única propriedade é toda a configuração necessária — você não adiciona nenhum XML de manifesto:
build.gradle.kts
O valor deve corresponder ao esquema em CheckoutParams.returnUrl (por exemplo, myapp://checkout/return).
Se você omitir completamente o placeholder, o build falhará imediatamente com um erro de placeholder não resolvido, em vez de falhar silenciosamente no momento do checkout. Se você defini-lo, mas ele não corresponder ao esquema de returnUrl, DodoCheckout.start lançará PLATFORM_ERROR antes de apresentar qualquer conteúdo.

Uso

O SDK oferece suporte a dois estilos de invocação.

O que o resultado significa

O campo status é uma indicação para a UI, não uma prova de pagamento. Sempre verifique o pagamento no seu backend usando webhooks ou o endpoint Get Payment Detail antes de conceder acesso.
CheckoutStatus
obrigatório
Um entre SUCCEEDED, FAILED, CANCELLED, PENDING, EXPIRED.
String?
Definido quando a URL de retorno incluiu um. Exiba-o na UI; não o use para conceder acesso. Consulte Verificar o pagamento abaixo.
String?
Definido para checkouts de assinatura.
List<String>?
Definido quando o checkout inclui produtos com chaves de licença.
String?
Definido quando o checkout coleta um e-mail.
Map<String, String>
Todos os parâmetros de consulta da URL de retorno, literalmente.

Verificar o pagamento

Webhooks

Ouça os eventos de pagamento em tempo real

Get Payment Detail

Consulte o status do pagamento sob demanda
Conceda acesso ao usuário somente depois que uma dessas opções confirmar o pagamento. Não dependa apenas de CheckoutResult.status.

Erros

DodoCheckout.start lança CheckoutError somente em caso de uso incorreto ou falha da plataforma. Leia o código de CheckoutError.code:
  • INVALID_CHECKOUT_URL: não é uma URL de sessão checkout.dodopayments.com.
  • INVALID_RETURN_URL: não é uma URL absoluta válida.
  • ALREADY_IN_PROGRESS: já há um checkout em execução.
  • PLATFORM_ERROR: falha inesperada da plataforma, incluindo um returnUrl cujo esquema não corresponde ao seu placeholder dodoCallbackScheme.
O cancelamento pelo usuário ou um pagamento recusado sempre gera um resultado (CANCELLED ou FAILED), nunca um erro lançado. No estilo launcher, erros de validação são lançados para fora de launcher.launch(...).

Sessões abandonadas

Se o app for encerrado ou o usuário o interromper à força durante o checkout, o SDK armazenará a sessão localmente. Na próxima inicialização do app, verifique se há uma sessão abandonada e faça a conciliação com seu backend:
O abandoned.createdAt é um timestamp de época em milissegundos.

Relacionado

Mobile Integration Guide

Práticas recomendadas para fluxos de checkout móvel

Kotlin SDK

SDK de backend para operações no lado do servidor
Última modificação em 31 de julho de 2026