Skip to main content

Introduction

Dodo Payments lets you sell digital goods and services in your iOS app, and handles tax compliance, currency conversion, and payouts for you. This page covers how the integration works for SaaS tools, content subscriptions, and digital utilities, and in which App Store regions you can use it.

Overview

Dodo Payments is your Merchant of Record (MoR) and takes on these parts of your digital business:
  • Tax collection and remittance (VAT, GST, and other regional taxes)
  • Global payments, including local payment methods, subject to Dodo Payments policies
  • Currency conversion and foreign exchange
  • Fraud prevention and dispute tools
  • End-customer invoicing and receipts
  • Compliance with regional regulations

Use Cases

Subscriptions

  • Premium content or feature access
  • Recurring billing with free trials, proration, and upgrades or downgrades

Courses and Learning

  • Pay-per-course access
  • Bundled content packages
  • Lifetime or renewable licenses
  • Progress tracking in your app

Digital Downloads

  • One-time purchases (PDFs, music, tools)
  • Digital asset delivery
  • License key management

SaaS Tools

  • Software-as-a-Service subscriptions
  • Usage-based billing
  • Team and enterprise plans

Integration Flow

Your app opens Dodo Payments hosted checkout with the iOS checkout SDK. The SDK presents checkout in SFSafariViewController and returns a typed result.
Use the SDK rather than embedding checkout in a WebView. Apple documents Apple Pay support in SFSafariViewController, while an embedded WebView can suppress Apple Pay and Google Pay, which costs you wallet conversions. For example, WKWebView disables Apple Pay when your app injects scripts into the page. App Review applies the same purchase rules (guideline 3.1.1) to a WebView checkout as to a native one.

Integration Steps

1

Mobile App to Your Server

Your app asks your backend for a checkout URL. Authenticate the request with the signed-in user’s session token.
2

Your Server to Dodo API

Your backend creates a checkout session with your API key and returns the checkout_url to the app.
Create checkout sessions on your server, never in the app. Anyone can extract an API key from an app binary.
3

Mobile App Opens Checkout

Pass the checkout_url to DodoCheckout.start(...). The SDK presents it in SFSafariViewController and returns a typed result when the customer completes or dismisses checkout.
4

Dodo Payments to Your Server

Dodo Payments sends the payment.succeeded or subscription.active webhook to your endpoint when the payment succeeds or the subscription activates.
5

Your Server Grants Access

Unlock the purchased content from that webhook, not from the result the app received. The SDK result is a UI hint, not proof of payment.

iOS Checkout SDK

Install steps and the full start(...) contract for Swift.

Mobile Integration Guide

The end-to-end flow, plus the same contract for Android, React Native, and Flutter.

Regional Availability

Dodo Payments supports alternative purchase flows only in App Store regions where Apple explicitly allows external payments, or where a regulator or court order requires it.

Supported Regions

Supported to the extent that current court orders and Apple’s App Store Review Guidelines allow.
  • Guideline 3.1.1(a) lets apps on the U.S. storefront include buttons and links to other purchase methods without an entitlement
  • Subject to the outcome of the Epic v. Apple court proceedings
  • You must follow Apple’s implementation guidelines
Supported through Apple’s EU terms and Apple’s external purchase entitlement for the EU.
  • Enabled through Apple’s EU Alternative Terms. From October 1, 2026, Apple replaces these terms with a single set of EU terms
  • Requires the StoreKit External Purchases or Offers Entitlement under the terms that take effect on October 1, 2026. Under the earlier terms, the entitlement is the StoreKit External Purchase Link Entitlement
  • You must comply with EU Digital Markets Act requirements
Supported under Japan’s Mobile Software Competition Act (MSCA), in force since December 18, 2025.
  • Apple allows alternative payment methods and links to external purchases on the Japan storefront
  • You must follow Apple’s Japan-specific entitlement and App Store Connect requirements
  • Commission terms differ from other regions; check Apple’s current terms for Japan
South Korea isn’t a supported region. Apple’s StoreKit External Purchase Entitlement for South Korea requires a native in-app payment flow that “may not be within a web view”, processed by an Apple-approved Korean payment service provider (such as KCP, Inicis, Toss, or NICE), with prices in South Korean Won. Dodo Payments checkout opens as a web page, so it doesn’t meet these requirements.
Before you enable Dodo Payments for any storefront, review and follow Apple’s region-specific entitlements and App Store Connect requirements. Alternative payment flows in unsupported regions can get your app rejected or removed.
Some business models don’t require in-app purchase (IAP). Under guideline 3.1.3(e), apps that sell physical goods or services consumed outside the app must use a payment method other than IAP. Dodo Payments supports these models too. Check your app’s category against Apple’s current guidelines to confirm whether IAP is required for your use case.

Learn More

For global policies, legal history, and strategies to reduce App Store fees, see:

Bypassing App Store & Play Store Fees: A Strategic and Legal Playbook

Learn where and how you can legally implement alternative payment flows, with up-to-date regional guidance and compliance tips.
Last modified on September 26, 2026