Skip to main content
Este es el SDK oficial de checkout de Dodo Payments para iOS y Swift. Abre el checkout alojado de Dodo en una vista de navegador nativa y devuelve un resultado tipado.

Checkout Sessions API

Crea checkout_url desde tu backend, que este SDK abrirá.

Mobile Integration Guide

Consulta cómo encaja esto en el flujo completo de pagos móviles.
El SDK de iOS abre el checkout alojado de Dodo en SFSafariViewController, no almacena ninguna API key y nunca llama directamente a la API de Dodo. Toda la lógica del checkout se ejecuta en el navegador; el SDK simplemente gestiona el ciclo de vida de la vista y captura la URL de retorno. Requiere iOS 16+ y Swift 6.

Instalación

1

Add the Package

En Xcode, ve a File → Add Package Dependencies e introduce:
Selecciona la versión 1.0.0 o posterior.Como alternativa, añádelo a tu Package.swift:
Package.swift
2

Register a Callback URL Scheme

Tu app debe registrar un esquema de URL para recibir la URL de retorno del checkout. Añade esto a tu Info.plist:
Info.plist
También puedes añadirlo mediante la interfaz Info → URL Types de Xcode.

Uso

Reenvío de la URL de retorno

SFSafariViewController no tiene una forma dentro del proceso de capturar su propia URL de retorno. Tu app debe reenviar las URL entrantes al SDK.
Es seguro reenviar aquí todas las URL. handleOpenURL solo actúa sobre las URL que coinciden con tu returnUrl registrado y devuelve false para cualquier otra.

Qué significa el resultado

result.status es una indicación para la interfaz, no una prueba de pago. Confirma cada pago desde tu backend mediante el webhook payment.succeeded / subscription.active.
CheckoutStatus
requerido
Uno de succeeded, failed, cancelled, pending, expired.
String?
Se establece cuando la URL de retorno incluía uno. Muéstralo en la interfaz, pero no lo uses para conceder acceso. Consulta Verificar el pago más adelante.
String?
Se establece para los checkouts de suscripciones.
[String]?
Se establece cuando el checkout incluye productos con license key.
String?
Se establece cuando el checkout captura un correo electrónico.
[String: String]
Todos los parámetros de consulta de la URL de retorno, literalmente.

Verificar el pago

Webhooks

Dodo Payments llama a tu backend cuando un pago se realiza correctamente o una suscripción se activa.

Get Payment Detail

Consulta paymentId con tu secret key para comprobar su estado directamente.
Concede acceso después de que uno de estos confirme el pago, nunca basándote únicamente en result.status.

Errores

start lanza CheckoutError únicamente por un uso incorrecto o un fallo de la plataforma. Un pago cancelado o rechazado siempre es un resultado, nunca una excepción.
  • invalidCheckoutUrl (INVALID_CHECKOUT_URL): no es una URL de sesión de checkout.dodopayments.com.
  • invalidReturnUrl (INVALID_RETURN_URL): no es una URL absoluta válida.
  • alreadyInProgress (ALREADY_IN_PROGRESS): ya hay un checkout en ejecución.
  • platformError (PLATFORM_ERROR): fallo inesperado de la plataforma.

Sesiones abandonadas

Si la app se cierra durante el checkout, recupera la sesión en el siguiente inicio y reconciliala con tu backend.

Relacionado

Mobile Integration Guide

El mismo contrato para Android, React Native y Flutter.

React Native SDK

Encapsula este mismo núcleo de Swift en iOS.
Última modificación el 31 de julio de 2026