Skip to main content
Sincronizza i dati di Dodo Payments con il tuo database per analisi, report e integrazioni. Il motore di sincronizzazione replica automaticamente payments, customers, subscriptions e licenses in MongoDB, PostgreSQL, MySQL o ClickHouse.
Package: dodo-sync su npm | Source: GitHub

Cosa puoi sincronizzare?

Scegli una combinazione qualsiasi di queste entità:

Payments

Tutte le transazioni di pagamento, inclusi i pagamenti una tantum, i rimborsi e gli aggiornamenti di stato.

Customers

Profili dei clienti, informazioni di contatto e metadati.

Subscriptions

Dati degli abbonamenti, cicli di fatturazione e modifiche di stato.

Licenses

Chiavi di licenza, attivazioni e aggiornamenti di stato.
Specifica quali entità sincronizzare utilizzando il parametro scopes. A ogni esecuzione vengono recuperati tutti i record negli ambiti selezionati e scritti in base all’ID, quindi le righe esistenti vengono aggiornate direttamente invece di essere duplicate. In MongoDB, le chiavi di licenza vengono memorizzate in base all’ID dell’abbonamento, quindi un abbonamento con diverse chiavi di licenza ne conserva solo una.

Supporto dei database

Dodo Sync supporta MongoDB, PostgreSQL, MySQL e ClickHouse. Il supporto per Snowflake e altri database, le pipeline ETL e la sincronizzazione in tempo reale sono in fase di sviluppo. Per contribuire a una nuova integrazione con un database, invia una pull request al repository GitHub.

Per iniziare

Usa Dodo Sync tramite la CLI per una configurazione rapida oppure direttamente nel tuo codice per integrarlo nella tua applicazione. Entrambi i metodi offrono le stesse funzionalità.

Utilizzo della CLI

Installa la CLI a livello globale per eseguirla da qualsiasi posizione:

Esecuzione della CLI

La CLI supporta due modalità: interattiva per una configurazione guidata e manuale per una configurazione diretta. Modalità interattiva: esegui il comando senza argomenti per avviare la procedura guidata di configurazione.
Modalità manuale: passa direttamente gli argomenti per ignorare la procedura guidata.
Esempi:

Argomenti della CLI

number
obbligatorio
Intervallo di sincronizzazione in secondi. La CLI viene eseguita continuamente con questo intervallo. Per una sincronizzazione una tantum, usa .run() nel tuo codice.
string
obbligatorio
Tipo di database: "mongodb", "postgres", "mysql" o "clickhouse".
string
obbligatorio
URI di connessione al database:
  • MongoDB: mongodb://localhost:27017 o 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
obbligatorio
Elenco separato da virgole delle entità da sincronizzare: licences, payments, customers, subscriptions. Esempio: "payments,customers".
string
obbligatorio
La tua chiave API di Dodo Payments da Developer → API Keys. Usa una chiave della stessa modalità di --env.
string
obbligatorio
Ambiente: "live_mode" o "test_mode".
number
Limite di frequenza in richieste al secondo. Controlla la velocità con cui il motore di sincronizzazione effettua le richieste API. Il valore predefinito è 10; i valori pari o superiori a 100 disattivano il throttling.

Utilizzo nel codice

Integra direttamente la funzionalità di sincronizzazione nella tua applicazione. Installala come dipendenza:

Sincronizzazione automatica (basata su intervallo)

Esegui la sincronizzazione continuamente a intervalli regolari:
L’opzione interval è obbligatoria quando si utilizza .start(). La sincronizzazione viene eseguita continuamente all’intervallo specificato finché il processo non si arresta.

Sincronizzazione manuale

Avvia operazioni di sincronizzazione su richiesta, ad esempio da un cron job o da un endpoint API:
L’opzione interval non è obbligatoria per la sincronizzazione manuale. Chiama .run() ogni volta che devi sincronizzare.

Esempio PostgreSQL

Esempio MySQL

Esempio ClickHouse

Opzioni del costruttore

string
obbligatorio
Tipo di database: "mongodb", "postgres", "mysql" o "clickhouse".
string
obbligatorio
Stringa di connessione al database:
  • MongoDB: mongodb://localhost:27017 o mongodb+srv://...
  • PostgreSQL: postgresql://user:password@localhost:5432/mydb
  • MySQL: mysql://user:password@localhost:3306/mydb
  • ClickHouse: http://localhost:8123
string[]
obbligatorio
Array di entità da sincronizzare: "licences", "payments", "customers", "subscriptions". Includi qualsiasi combinazione.
object
obbligatorio
Configurazione API di Dodo Payments. Consulta i tipi dell’SDK TypeScript per l’elenco completo delle opzioni.Proprietà obbligatorie:
  • bearerToken: la tua chiave API di Dodo Payments
  • environment: "test_mode" o "live_mode"
number
Tempo in secondi tra le sincronizzazioni automatiche. Obbligatorio per .start(), facoltativo per .run().
number
Limite di frequenza in richieste al secondo. Il valore predefinito è 10; i valori pari o superiori a 100 disattivano il throttling.

Informazioni importanti

MongoDB: sul server viene creato automaticamente un database denominato dodopayments_sync. Questo nome del database è fisso e non può essere modificato.PostgreSQL: le tabelle (Subscriptions, Payments, Licenses, Customers) vengono create nel database specificato nell’URI di connessione. I dati vengono memorizzati come JSONB.MySQL: le tabelle (Subscriptions, Payments, Licenses, Customers) vengono create nel database specificato nell’URI di connessione. I dati vengono memorizzati come JSON.ClickHouse: le tabelle (Subscriptions, Payments, Licenses, Customers) vengono create utilizzando il motore ReplacingMergeTree. Quando esegui query, usa la parola chiave FINAL per assicurarti di ottenere risultati deduplicati.

Risorse aggiuntive

GitHub Repository

Visualizza il codice sorgente, segnala problemi o contribuisci con miglioramenti

npm Package

Visualizza i dettagli del package e le istruzioni di installazione
Ultima modifica il 26 settembre 2026