Skip to main content
The TypeScript SDK provides convenient server-side access to the Dodo Payments REST API for TypeScript and JavaScript applications. It features comprehensive type definitions, error handling, retries, timeouts, and auto-pagination for seamless payment processing.

Installation

Install the SDK using your package manager of choice:

Quick Start

Initialize the client with your API key and start processing payments:
Always store your API keys securely using environment variables. Never commit them to version control or expose them in client-side code.

Core Features

TypeScript First

Full TypeScript support with comprehensive type definitions for all API endpoints

Auto-Pagination

Automatic pagination for list responses makes working with large datasets effortless

Error Handling

Built-in error types with detailed messages for different failure scenarios

Smart Retries

Configurable automatic retries with exponential backoff for transient errors

Configuration

Environment Variables

Set environment variables for secure configuration:
.env

Timeout Configuration

Configure request timeouts globally or per-request:

Retry Configuration

Configure automatic retry behavior:
The SDK automatically retries requests that fail due to network errors or server issues (5xx responses) with exponential backoff.

Common Operations

Create a Checkout Session

Generate a checkout session for collecting payment information:

Manage Customers

Create and retrieve customer information:

Handle Subscriptions

Create and manage recurring subscriptions:
POST /subscriptions (metode subscriptions.create milik SDK) sudah deprecated. Metode ini masih berfungsi untuk integrasi yang sudah ada, tetapi integrasi baru sebaiknya membuat subscription melalui Checkout Session.
billing memerlukan setidaknya kode negara ISO dua huruf. customer merupakan gabungan dari { customer_id } (untuk mengaitkan customer yang sudah ada) atau { email, name? } (untuk membuat customer baru). product_price dinyatakan dalam denominasi mata uang terkecil.

Penagihan Berbasis Penggunaan

Menerima Event Penggunaan

Lacak event khusus untuk penagihan berbasis penggunaan:
Event harus memiliki nilai event_id yang unik untuk idempotensi. ID duplikat dalam request yang sama akan ditolak, dan request berikutnya dengan ID yang sudah ada akan diabaikan.

Mengambil Event Penggunaan

Ambil informasi mendetail tentang event penggunaan:

Konfigurasi Proxy

Konfigurasikan pengaturan proxy untuk runtime yang berbeda:

Node.js (menggunakan undici)

Bun

Deno

Logging

Kontrol tingkat detail log menggunakan environment variables atau opsi client:
Level log yang tersedia:
  • 'debug' - Tampilkan pesan debug, info, peringatan, dan error
  • 'info' - Tampilkan pesan info, peringatan, dan error
  • 'warn' - Tampilkan peringatan dan error (default)
  • 'error' - Tampilkan hanya error
  • 'off' - Nonaktifkan semua logging
Pada level debug, semua request dan respons HTTP dicatat, termasuk header dan body. Beberapa header autentikasi disamarkan, tetapi data sensitif dalam body masih dapat terlihat.

Migrasi dari Node.js SDK

Jika Anda melakukan upgrade dari Node.js SDK lama, TypeScript SDK menawarkan keamanan tipe dan fitur yang lebih baik:

View Migration Guide

Pelajari cara bermigrasi dari Node.js SDK ke TypeScript SDK

Pagination Otomatis

Metode list di DodoPayments API menggunakan pagination. Anda dapat menggunakan sintaks for await … of untuk melakukan iterasi pada item di semua halaman:
Atau, Anda dapat meminta satu halaman dalam satu waktu:

Persyaratan

Runtime berikut didukung:
  • Browser web (Chrome, Firefox, Safari, Edge, dan lainnya versi terbaru)
  • Node.js 20 LTS atau yang lebih baru, versi (non-EOL)
  • Deno v1.28.0 atau lebih tinggi
  • Bun 1.0 atau lebih baru
  • Cloudflare Workers
  • Vercel Edge Runtime
  • Jest 28 atau lebih tinggi dengan environment "node"
  • Nitro v2.6 atau lebih tinggi
TypeScript >= 4.9 didukung.

Sumber Daya

GitHub Repository

Lihat source code dan berkontribusilah

API Reference

Dokumentasi API lengkap

Discord Community

Dapatkan bantuan dan terhubung dengan developer

Report Issues

Laporkan bug atau ajukan fitur

Dukungan

Perlu bantuan terkait TypeScript SDK?

Berkontribusi

Kami menyambut kontribusi! Lihat panduan kontribusi untuk memulai.
Terakhir diubah pada 17 Agustus 2026