Skip to main content
Dodo Payments propose une fonctionnalité intégrée de synchronisation de base de données qui synchronise automatiquement vos données de paiement avec votre propre base de données. Vous pouvez synchroniser les paiements, les clients, les abonnements et les licences afin de conserver une copie locale de vos données pour l’analyse, les rapports ou l’intégration avec d’autres systèmes.
Implémentation : disponible via le package npm | Code source : GitHub

Que pouvez-vous synchroniser ?

Notre fonctionnalité de synchronisation de base de données prend en charge la synchronisation des entités Dodo Payments suivantes avec votre base de données :

Payments

Synchronisez toutes les transactions de paiement, y compris les paiements ponctuels, les remboursements et les mises à jour du statut des paiements.

Customers

Gardez vos données clients synchronisées, notamment les profils clients, les coordonnées et les métadonnées.

Subscriptions

Synchronisez les données d’abonnement, notamment les abonnements actifs, les cycles de facturation et les changements de statut des abonnements.

Licenses

Synchronisez les informations de licence, notamment les clés de licence, les activations et les mises à jour du statut des licences.
Vous pouvez synchroniser n’importe quelle combinaison de ces entités en les indiquant dans le paramètre scopes. Toutes les opérations de synchronisation sont incrémentielles et transfèrent uniquement les enregistrements nouveaux ou mis à jour afin d’optimiser les performances.

Bases de données prises en charge

Nous prenons actuellement en charge MongoDB, PostgreSQL, MySQL et ClickHouse. Nous travaillons activement à l’extension de la prise en charge pour :
  • Bases de données : Snowflake et d’autres.
  • Pipelines : pipelines ETL, synchronisation en temps réel.
Nous étendons continuellement la prise en charge des bases de données. Si vous souhaitez contribuer à une nouvelle intégration de base de données, veuillez envoyer une Pull Request à notre dépôt GitHub.

Premiers pas

Vous pouvez utiliser notre fonctionnalité de synchronisation de base de données via la CLI ou de manière programmatique dans votre code. Les deux méthodes offrent les mêmes fonctionnalités : choisissez celle qui correspond le mieux à votre workflow.

Utiliser la CLI

L’outil CLI permet de configurer et d’exécuter rapidement la synchronisation de base de données. Installez-le globalement pour pouvoir l’utiliser depuis n’importe quel emplacement de votre terminal :

Exécuter la CLI

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

Arguments de la CLI

number
Intervalle de synchronisation en secondes. Détermine la fréquence d’exécution de l’opération de synchronisation. S’il n’est pas fourni, la synchronisation s’exécute une seule fois, puis se termine.
string
requis
Type de base de données à utiliser. Valeurs prises en charge : "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 de données à synchroniser. Scopes disponibles : licences, payments, customers, subscriptions. Exemple : "payments,customers".
string
requis
Votre clé API Dodo Payments. Elle doit commencer par dp_live_ en mode live ou par dp_test_ en mode test.
string
requis
Cible de l’environnement. Doit être soit "live_mode", soit "test_mode". Cela détermine depuis quel environnement Dodo Payments effectuer la synchronisation.
number
Limite de débit en requêtes par seconde. Contrôle la vitesse à laquelle le moteur de synchronisation effectue les requêtes API afin d’éviter de surcharger l’API Dodo Payments.

Utiliser dans votre code

Pour un contrôle programmatique, intégrez directement la fonctionnalité de synchronisation à votre application. Installez-la comme dépendance dans votre projet :

Synchronisation automatique (basée sur un intervalle)

Utilisez la synchronisation automatique lorsque vous souhaitez qu’elle s’exécute en continu à intervalles réguliers :
L’option interval est requise lors de l’utilisation de .start() pour la synchronisation automatique. La synchronisation s’exécute en continu selon l’intervalle indiqué jusqu’à l’arrêt du processus.

Synchronisation manuelle

Utilisez la synchronisation manuelle lorsque vous souhaitez déclencher des opérations de synchronisation à la demande (par exemple, depuis une tâche cron ou un endpoint API) :
Lors d’une synchronisation manuelle, l’option interval n’est pas requise. Vous pouvez appeler .run() chaque fois que vous devez effectuer une opération de synchronisation.

Exemple PostgreSQL

Voici comment utiliser dodo-sync avec PostgreSQL :

Exemple MySQL

Voici comment utiliser dodo-sync avec MySQL :

Exemple ClickHouse

Voici comment utiliser dodo-sync avec ClickHouse :

Options du constructeur

string
requis
Nom de la base de données à utiliser. Valeurs prises en charge : "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. Options disponibles : "licences", "payments", "customers", "subscriptions". Vous pouvez inclure n’importe quelle combinaison de ces options.
object
requis
Configuration API de Dodo Payments pour l’authentification et la sélection de l’environnement. Consultez les types du SDK TypeScript pour connaître toutes les options.Propriétés obligatoires :
  • bearerToken : votre clé API Dodo Payments
  • environment : soit "test_mode", soit "live_mode"
number
Durée en secondes entre les synchronisations automatiques. Obligatoire lors de l’utilisation de .start() pour la synchronisation automatique. Facultatif lors de l’utilisation de .run() pour la synchronisation manuelle.
number
Nombre de requêtes par seconde. Contrôle la vitesse à laquelle le moteur de synchronisation effectue les requêtes API afin d’éviter de surcharger l’API Dodo Payments.

Informations importantes

MongoDB : une base de données nommée dodopayments_sync sera automatiquement créée sur votre serveur de base de données. Toutes les données synchronisées y seront stockées. Le nom de cette base de données est actuellement fixe et ne peut pas être modifié.PostgreSQL : les tables (Subscriptions, Payments, Licenses, Customers) seront 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) seront 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) seront créées à l’aide du moteur ReplacingMergeTree. Lors des requêtes, utilisez le mot-clé FINAL pour garantir l’obtention de résultats dédupliqués.
Le moteur de synchronisation suit les changements et ne synchronise que les enregistrements nouveaux ou mis à jour, ce qui rend les synchronisations ultérieures efficaces, même avec de grands ensembles de données.

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 31 juillet 2026