Skip to main content
Este é o SDK oficial de checkout do Dodo Payments para iOS em Swift. Ele abre o checkout hospedado do Dodo em uma visualização de navegador nativa e retorna um resultado tipado.

Checkout Sessions API

Crie o checkout_url que este SDK abre a partir do seu backend.

Mobile Integration Guide

Veja como isso se encaixa no fluxo completo de pagamentos móveis.
O SDK para iOS abre o checkout hospedado do Dodo em SFSafariViewController, não armazena nenhuma API key e nunca chama a API do Dodo diretamente. Toda a lógica do checkout é executada no navegador; o SDK simplesmente gerencia o ciclo de vida da visualização e captura a URL de retorno. Requer iOS 16 ou posterior e Swift 6.

Instalação

1

Add the Package

No Xcode, acesse File → Add Package Dependencies e insira:
Selecione a versão 1.0.0 ou posterior.Como alternativa, adicione ao seu Package.swift:
Package.swift
2

Register a Callback URL Scheme

Seu app deve registrar um esquema de URL para receber a URL de retorno do checkout. Adicione isto ao seu Info.plist:
Info.plist
Você também pode adicionar isso pela interface Info → URL Types do Xcode.

Uso

Encaminhando a URL de retorno

SFSafariViewController não tem uma forma em processo de capturar sua própria URL de retorno. Seu app deve encaminhar as URLs recebidas para o SDK.
É seguro encaminhar todas as URLs aqui. handleOpenURL só atua em URLs que correspondem ao seu returnUrl registrado e retorna false para qualquer outra URL.

O que o resultado significa

result.status é uma indicação da interface, não uma prova de pagamento. Confirme todos os pagamentos a partir do seu backend, por meio do webhook payment.succeeded / subscription.active.
CheckoutStatus
obrigatório
Um dos seguintes: succeeded, failed, cancelled, pending, expired.
String?
Definido quando a URL de retorno incluiu um. Exiba-o na interface; não o use para conceder acesso. Consulte Verificar o pagamento abaixo.
String?
Definido para checkouts de assinatura.
[String]?
Definido quando o checkout inclui produtos com chaves de licença.
String?
Definido quando o checkout captura um e-mail.
[String: String]
Todos os parâmetros de consulta da URL de retorno, literalmente.

Verificar o pagamento

Webhooks

O Dodo Payments chama seu backend quando um pagamento é concluído com sucesso ou uma assinatura é ativada.

Get Payment Detail

Consulte paymentId com sua secret key para verificar o status diretamente.
Conceda acesso depois que um desses mecanismos confirmar o pagamento, nunca apenas com base em result.status.

Erros

start gera CheckoutError somente em caso de uso incorreto ou falha da plataforma. Um pagamento cancelado ou recusado sempre é um resultado, nunca uma exceção.
  • invalidCheckoutUrl (INVALID_CHECKOUT_URL): não é uma URL de sessão checkout.dodopayments.com.
  • invalidReturnUrl (INVALID_RETURN_URL): não é uma URL absoluta válida.
  • alreadyInProgress (ALREADY_IN_PROGRESS): já há um checkout em execução.
  • platformError (PLATFORM_ERROR): falha inesperada da plataforma.

Sessões abandonadas

Se o app for encerrado durante o checkout, recupere a sessão na próxima inicialização e reconcilie-a com seu backend.

Relacionado

Mobile Integration Guide

O mesmo contrato para Android, React Native e Flutter.

React Native SDK

Encapsula este mesmo núcleo em Swift no iOS.
Última modificação em 31 de julho de 2026