Skip to main content
Synchronisez vos données Dodo Payments avec votre propre base de données pour l’analytics, les rapports et les intégrations. Le moteur de synchronisation réplique automatiquement les paiements, les clients, les abonnements et les licences vers MongoDB, PostgreSQL, MySQL ou ClickHouse.
Package : dodo-sync sur npm | Source : GitHub

Que pouvez-vous synchroniser ?

Choisissez n’importe quelle combinaison de ces entités :

Payments

Toutes les transactions de paiement, y compris les paiements ponctuels, les remboursements et les mises à jour de statut.

Customers

Profils clients, coordonnées et métadonnées.

Subscriptions

Données d’abonnement, cycles de facturation et changements de statut.

Licenses

Clés de licence, activations et mises à jour de statut.
Indiquez les entités à synchroniser à l’aide du paramètre scopes. Chaque exécution récupère chaque enregistrement dans les périmètres sélectionnés et l’écrit à l’aide de son ID. Les lignes existantes sont donc mises à jour sur place au lieu d’être dupliquées. Dans MongoDB, les clés de licence sont stockées par ID d’abonnement : un abonnement comportant plusieurs clés de licence n’en conserve donc qu’une seule.

Bases de données prises en charge

Dodo Sync prend en charge MongoDB, PostgreSQL, MySQL et ClickHouse. La prise en charge de Snowflake et d’autres bases de données, des pipelines ETL et de la synchronisation en temps réel est en cours de développement. Pour contribuer à une nouvelle intégration de base de données, envoyez une pull request au dépôt GitHub.

Premiers pas

Utilisez Dodo Sync via la CLI pour une configuration rapide ou directement dans votre code pour l’intégrer à votre application. Les deux méthodes offrent les mêmes fonctionnalités.

Utilisation de la CLI

Installez la CLI globalement pour pouvoir l’exécuter depuis n’importe quel emplacement :

Exécution de la CLI

La CLI prend en charge deux modes : interactif pour une configuration guidée et manuel pour une configuration directe. Mode interactif : exécutez la CLI sans arguments pour démarrer l’assistant de configuration.
Mode manuel : transmettez directement les arguments pour ignorer l’assistant.
Exemples :

Arguments de la CLI

number
requis
Intervalle de synchronisation en secondes. La CLI s’exécute en continu selon cet intervalle. Pour une synchronisation ponctuelle, utilisez .run() dans votre code.
string
requis
Type de base de données : "mongodb", "postgres", "mysql" ou "clickhouse".
string
requis
URI de connexion à votre base de données :
  • MongoDB : mongodb://localhost:27017 ou mongodb+srv://user:pass@cluster.mongodb.net/
  • PostgreSQL : postgresql://user:password@localhost:5432/mydb
  • MySQL : mysql://user:password@localhost:3306/mydb
  • ClickHouse : http://localhost:8123
string
requis
Liste séparée par des virgules des entités à synchroniser : licences, payments, customers, subscriptions. Exemple : "payments,customers".
string
requis
Votre clé API Dodo Payments issue de Developer → API Keys. Utilisez une clé correspondant au même mode que --env.
string
requis
Environnement : "live_mode" ou "test_mode".
number
Limite de débit en requêtes par seconde. Contrôle la vitesse à laquelle le moteur de synchronisation effectue les requêtes API. La valeur par défaut est 10 ; les valeurs supérieures ou égales à 100 désactivent la limitation.

Utilisation dans votre code

Intégrez directement la fonctionnalité de synchronisation à votre application. Installez-la en tant que dépendance :

Synchronisation automatique (basée sur un intervalle)

Exécutez la synchronisation en continu à intervalles réguliers :
L’option interval est obligatoire avec .start(). La synchronisation s’exécute en continu selon l’intervalle indiqué jusqu’à l’arrêt du processus.

Synchronisation manuelle

Déclenchez des opérations de synchronisation à la demande, par exemple depuis une tâche cron ou un endpoint API :
L’option interval n’est pas obligatoire pour une synchronisation manuelle. Appelez .run() chaque fois que vous devez effectuer une synchronisation.

Exemple PostgreSQL

Exemple MySQL

Exemple ClickHouse

Options du constructeur

string
requis
Type de base de données : "mongodb", "postgres", "mysql" ou "clickhouse".
string
requis
Chaîne de connexion à votre base de données :
  • MongoDB : mongodb://localhost:27017 ou mongodb+srv://...
  • PostgreSQL : postgresql://user:password@localhost:5432/mydb
  • MySQL : mysql://user:password@localhost:3306/mydb
  • ClickHouse : http://localhost:8123
string[]
requis
Tableau d’entités à synchroniser : "licences", "payments", "customers", "subscriptions". Incluez n’importe quelle combinaison.
object
requis
Configuration de l’API Dodo Payments. Consultez les types du SDK TypeScript pour connaître toutes les options.Propriétés obligatoires :
  • bearerToken : votre clé API Dodo Payments
  • environment : "test_mode" ou "live_mode"
number
Durée en secondes entre les synchronisations automatiques. Obligatoire pour .start(), facultative pour .run().
number
Limite de débit en requêtes par seconde. La valeur par défaut est 10 ; les valeurs supérieures ou égales à 100 désactivent la limitation.

Informations importantes

MongoDB : une base de données nommée dodopayments_sync est automatiquement créée sur votre serveur. Ce nom de base de données est fixe et ne peut pas être modifié.PostgreSQL : les tables (Subscriptions, Payments, Licenses, Customers) sont créées dans la base de données indiquée dans votre URI de connexion. Les données sont stockées au format JSONB.MySQL : les tables (Subscriptions, Payments, Licenses, Customers) sont créées dans la base de données indiquée dans votre URI de connexion. Les données sont stockées au format JSON.ClickHouse : les tables (Subscriptions, Payments, Licenses, Customers) sont créées à l’aide du moteur ReplacingMergeTree. Lors des requêtes, utilisez le mot-clé FINAL pour garantir des résultats dédupliqués.

Ressources supplémentaires

GitHub Repository

Consultez le code source, signalez des problèmes ou contribuez à des améliorations

npm Package

Consultez les détails du package et les instructions d’installation
Dernière modification le 26 septembre 2026