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 (طريقة subscriptions.create في SDK) مهملة. لا تزال تعمل مع عمليات التكامل الحالية، ولكن ينبغي لعمليات التكامل الجديدة إنشاء الاشتراكات من خلال جلسة Checkout.
يتطلب billing رمز البلد ISO المكوّن من حرفين على الأقل. وcustomer هو اتحاد من { customer_id } (لإرفاق عميل حالي) أو { email, name? } (لإنشاء عميل جديد). ويُعبَّر عن product_price بأصغر فئة من فئات العملة.

الفوترة حسب الاستخدام

استيعاب أحداث الاستخدام

تتبّع الأحداث المخصّصة للفوترة حسب الاستخدام:
يجب أن تحتوي الأحداث على قيم event_id فريدة لضمان idempotency. ويُرفض تكرار المعرّفات ضمن الطلب نفسه، بينما يتم تجاهل الطلبات اللاحقة التي تحتوي على معرّفات موجودة مسبقًا.

استرداد أحداث الاستخدام

اجلب معلومات تفصيلية حول أحداث الاستخدام:

إعداد الوكيل الوسيط

اضبط إعدادات الوكيل الوسيط لبيئات التشغيل المختلفة:

Node.js (باستخدام undici)

Bun

Deno

التسجيل

تحكّم في مستوى تفصيل السجلات باستخدام متغيرات البيئة أو خيارات العميل:
مستويات السجل المتاحة:
  • 'debug' - عرض رسائل التصحيح والمعلومات والتحذيرات والأخطاء
  • 'info' - عرض رسائل المعلومات والتحذيرات والأخطاء
  • 'warn' - عرض التحذيرات والأخطاء (الافتراضي)
  • 'error' - عرض الأخطاء فقط
  • 'off' - تعطيل التسجيل بالكامل
في مستوى التصحيح، يتم تسجيل جميع طلبات HTTP واستجاباته، بما في ذلك الرؤوس والهيئات. يتم إخفاء بعض رؤوس المصادقة، ولكن قد تظل البيانات الحساسة في الهيئات ظاهرة.

الترحيل من Node.js SDK

إذا كنت تقوم بالترقية من Node.js SDK القديم، فإن TypeScript SDK يوفر أمانًا محسّنًا للأنواع وميزات إضافية:

View Migration Guide

تعرّف على كيفية الترحيل من Node.js SDK إلى TypeScript SDK

الترقيم التلقائي للصفحات

تستخدم أساليب القائمة في DodoPayments API الترقيم على صفحات. يمكنك استخدام صيغة for await … of للتكرار عبر العناصر الموجودة في جميع الصفحات:
بدلًا من ذلك، يمكنك طلب صفحة واحدة في كل مرة:

المتطلبات

بيئات التشغيل التالية مدعومة:
  • متصفحات الويب (أحدث إصدارات Chrome وFirefox وSafari وEdge وغيرها)
  • Node.js 20 LTS أو الإصدارات الأحدث (غير منتهية الصلاحية)
  • Deno v1.28.0 أو إصدار أحدث
  • Bun 1.0 أو إصدار أحدث
  • Cloudflare Workers
  • Vercel Edge Runtime
  • Jest 28 أو إصدار أحدث مع بيئة "node"
  • Nitro v2.6 أو إصدار أحدث
يُدعم TypeScript >= 4.9.

الموارد

GitHub Repository

عرض التعليمات البرمجية المصدر والمساهمة

API Reference

وثائق API الكاملة

Discord Community

احصل على المساعدة وتواصل مع المطورين

Report Issues

أبلغ عن الأخطاء أو اطلب ميزات جديدة

الدعم

هل تحتاج إلى مساعدة بشأن TypeScript SDK؟

المساهمة

نرحّب بمساهماتك! اطّلع على إرشادات المساهمة للبدء.
آخر تعديل في ١٧ أغسطس ٢٠٢٦