Skip to main content
Dodo Payments provides official SDKs for multiple programming languages, each designed with language-specific best practices and modern features for seamless payment integration.
Always use the latest SDK version to access the newest features and improvements. Check your package manager for updates regularly to ensure you have access to all Dodo Payments capabilities.

Available SDKs

Choose the SDK that matches your tech stack:

TypeScript SDK

Type-safe integration for TypeScript and Node.js with promise-based API and auto-pagination

Python SDK

Pythonic interface with async/await support for Python 3.7+ applications

PHP SDK

PSR-4 compliant SDK for modern PHP 8.1+ applications

Go SDK

Idiomatic Go interface with context support and strong typing

Ruby SDK

Elegant Ruby interface following Ruby conventions and best practices

Java SDK

Robust and thread-safe SDK for Java 8+ with Maven and Gradle support

Kotlin SDK

Modern Kotlin SDK with coroutines, null safety, and extension functions

C# SDK

Type-safe SDK for .NET 8+ with async Task-based API (Beta)

Rust SDK

Async-first SDK built on Tokio and reqwest with strong typing for Rust 1.75+

CLI

Command-line interface for interacting with the API from your terminal
Building a mobile app? See Mobile Checkout SDKs below for Android, iOS, React Native, and Flutter.

Quick Start

Get started with any SDK in minutes:
1

Install the SDK

Use your language’s package manager to install the SDK
2

Initialize the Client

Configure the client with your API key
Always store your API keys securely using environment variables. Never commit them to version control.
3

Make Your First API Call

Create a checkout session or payment
You’re now ready to process payments! Visit the individual SDK pages for detailed guides and examples.

Key Features

All backend SDKs share these core capabilities. The mobile checkout SDKs below are deliberately narrower — they hold no API key and never call the API:
  • Type Safety: Strong typing for compile-time safety and better IDE support
  • Error Handling: Comprehensive exception handling with detailed error messages
  • Authentication: Simple API key authentication with environment variable support
  • Async Support: Modern async/await patterns where applicable
  • Auto-Pagination: Automatic pagination for list responses
  • Usage-Based Billing: Built-in support for tracking and ingesting usage events
  • Testing: Full sandbox environment support for development and testing

Mobile Checkout SDKs

If you’d rather open Dodo’s hosted checkout page than build a native payment sheet, use the mobile checkout SDK for your platform. All four share the same one-call contract: start(...) returns a typed CheckoutResult, none of them hold an API key, and Apple Pay/Google Pay work the same way they do on the open web since checkout opens in the platform’s real browser surface (SFSafariViewController / Custom Tabs), not a WebView:

Android

Kotlin SDK that opens a Chrome Custom Tab. Requires minSdk 23

iOS

Swift SDK that opens SFSafariViewController. Requires iOS 16+

React Native

Turbo Module over both native cores. Requires React Native 0.76+

Flutter

Pigeon channel over both native cores. Requires Flutter 3.44+

Mobile Integration Guide

The end-to-end mobile payment flow, from backend checkout session to callback scheme setup

Command-Line Interface

For terminal-based workflows and automation:

CLI

Auto-generated command-line interface with support for all 78 API endpoints
Features:
  • Resource-based command structure for intuitive usage
  • Multiple output formats (JSON, YAML, pretty, interactive)
  • Shell completion for bash, zsh, and fish
  • Perfect for scripting and CI/CD automation

Migration from Node.js SDK

We migrated from the Node.js SDK to the new TypeScript SDK. If you’re using the legacy Node.js SDK, see the migration guide to update your integration.

Framework Adapters

Integrate in under 10 lines of code with our framework adapters. Choose from our recommended frameworks or explore all supported options.

Next.js

React-based full-stack framework with App Router support

Better Auth

Authentication framework with built-in integrations

Supabase

Open source Firebase alternative with Postgres and Auth

Convex

Backend-as-a-Service with real-time capabilities

SvelteKit

Nuxt

Remix

Express

Fastify

Hono

Astro

TanStack

Getting Help

Need assistance with any SDK?

Contributing

We welcome contributions to all our SDKs! Each repository has a CONTRIBUTING.md file with guidelines for:
  • Reporting bugs
  • Requesting features
  • Submitting pull requests
  • Running tests locally
  • Code style and conventions
Visit the individual SDK pages to access their GitHub repositories and contribution guidelines.
Last modified on July 28, 2026