Skip to main content

Quick Start

Coloque sua integração de pagamento móvel em funcionamento em 4 etapas simples

Platform Examples

Exemplos de código completos para Android, iOS, React Native e Flutter
O Dodo Payments oferece um SDK oficial de checkout para Android, iOS, React Native, e Flutter. Cada um encapsula o padrão documentado abaixo (abrir a URL de checkout, capturar o retorno e analisar o resultado) por trás de uma única chamada start(...) tipada, com recuperação de sessões abandonadas integrada. Use uma WebView manual somente se nenhuma dessas opções for compatível com sua stack.

Pré-requisitos

Antes de integrar o Dodo Payments ao seu aplicativo mobile, certifique-se de ter:
  • Conta do Dodo Payments: Conta de comerciante ativa com acesso à API
  • Credenciais da API: Chave de API e chave secreta de webhook do seu dashboard
  • Projeto de aplicativo mobile: Aplicativo Android, iOS, React Native ou Flutter
  • Servidor de backend: Para lidar com a criação de sessões de checkout com segurança

Fluxo de integração

A integração mobile segue um processo seguro de 4 etapas, no qual seu backend gerencia as chamadas de API e seu aplicativo mobile gerencia a experiência do usuário.
1

Backend: Create Checkout Session

Checkout Session API Docs

Saiba como criar uma sessão de checkout no seu backend usando Node.js, Python e outras linguagens. Consulte exemplos completos e referências de parâmetros na documentação dedicada da Checkout Sessions API.
Segurança: as sessões de checkout devem ser criadas no seu servidor de backend, nunca no aplicativo mobile. Isso protege suas chaves de API e garante a validação adequada.
2

Mobile: Get Checkout URL

Seu aplicativo mobile chama seu backend para obter a URL de checkout. Autentique esta solicitação com o próprio token de sessão do usuário conectado.
Segurança: os aplicativos mobile se comunicam apenas com seu backend, nunca diretamente com a Dodo Payments API.
3

Mobile: Open Checkout in Browser

Abra a URL de checkout em um navegador seguro dentro do aplicativo para processar o pagamento. Ou ignore completamente a configuração manual usando o SDK oficial de checkout para sua plataforma.

Pick your mobile SDK

Etapas de instalação e instruções de configuração para Android, iOS, React Native e Flutter.
4

Backend: Handle Payment Completion

Processe a conclusão do pagamento por meio de webhooks e URLs de redirecionamento para confirmar o status do pagamento.

Escolha seu SDK

Cada SDK mobile expõe o mesmo contrato: uma única chamada start(...) abre o checkout hospedado do Dodo na superfície de navegador nativa da plataforma e retorna um CheckoutResult tipado cujo status é succeeded, failed, cancelled, pending ou expired. Nenhum deles armazena uma chave de API ou chama a Dodo Payments API, e os quatro oferecem suporte à recuperação de sessões abandonadas.

Android

com.dodopayments.api:checkout-android abre uma Chrome Custom Tab. Requer minSdk 23.

iOS

dodopayments-mobile-sdk-ios abre SFSafariViewController. Requer iOS 16+.

React Native

@dodopayments/react-native-checkout, um Turbo Module sobre ambos os cores nativos. Requer React Native 0.76+.

Flutter

dodopayments_checkout, um canal Pigeon sobre ambos os cores nativos. Requer Flutter 3.44+.
O status retornado é uma indicação de UI, não uma comprovação de pagamento. Confirme todos os pagamentos no seu backend por meio do webhook payment.succeeded / subscription.active ou recuperando o pagamento com sua chave secreta.

Registrando um esquema de URL de callback

Os quatro SDKs devolvem o controle ao seu aplicativo por meio de um esquema de URL personalizado que você escolhe, por exemplo, myapp://checkout/return. Registre-o uma vez por plataforma:
android/app/build.gradle
O próprio manifesto do SDK já declara a atividade de redirecionamento, portanto não há XML de manifesto a adicionar.
Prefere criar tudo por conta própria? Abra o checkout_url em uma WebView e intercepte a navegação para seu return_url; em seguida, leia os parâmetros de consulta status e payment_id. Os SDKs acima fazem isso por você na superfície real de navegador da plataforma, e é por isso que Apple Pay e Google Pay continuam funcionando.

Práticas recomendadas

  • Segurança: nunca inclua uma chave de API no seu aplicativo. Crie sessões de checkout no seu backend e passe ao cliente apenas o checkout_url resultante.
  • Autoridade: trate CheckoutResult.status como uma indicação de UI. Conceda acesso somente depois que seu backend confirmar o pagamento.
  • Experiência do usuário: exiba um estado de carregamento enquanto seu backend cria a sessão e trate cancelled como um resultado normal, não como um erro.
  • Testes: use o modo de teste e cartões de teste, e verifique o ciclo completo da URL de retorno em um dispositivo real e também em um simulador.

Solução de problemas

Problemas comuns

  • O callback nunca chega: o esquema em returnUrl deve corresponder ao que você registrou. No Android, esse é o placeholder de manifesto dodoCallbackScheme; no iOS e no React Native, é o tipo de URL Info.plist.
  • O checkout retorna ao navegador em vez de retornar ao seu aplicativo (iOS): você não encaminhou a URL recebida. Chame DodoCheckout.handleOpenURL(url) de .onOpenURL, scene(_:openURLContexts:) ou de um listener Linking do React Native.
  • PLATFORM_ERROR no Android: na maioria das vezes, isso indica uma incompatibilidade de esquemas. Também pode ocorrer se seu MainActivity definir android:taskAffinity="" (o padrão flutter create), o que pode fazer com que alguns builds de OEM percam o checkout em andamento.
  • ALREADY_IN_PROGRESS: ainda há um checkout aberto. Aguarde ou descarte o anterior antes de iniciar outro.
  • O build falha com um placeholder não resolvido: você adicionou o Android SDK, mas nunca definiu manifestPlaceholders["dodoCallbackScheme"].
  • O pagamento foi bem-sucedido, mas o acesso não foi concedido: isso é esperado se você estiver usando o resultado mobile como referência. Conceda o acesso a partir do webhook payment.succeeded / subscription.active.

Recursos adicionais

Para dúvidas ou suporte, entre em contato pelo e-mail support@dodopayments.com.
Última modificação em 31 de julho de 2026