Skip to main content
Sincroniza tus datos de Dodo Payments con tu propia base de datos para realizar analítica, informes e integraciones. El motor de sincronización replica automáticamente pagos, clientes, suscripciones y licencias en MongoDB, PostgreSQL, MySQL o ClickHouse.
Paquete: dodo-sync en npm | Código fuente: GitHub

¿Qué Puedes Sincronizar?

Elige cualquier combinación de estas entidades:

Payments

Todas las transacciones de pago, incluidos los pagos únicos, los reembolsos y las actualizaciones de estado.

Customers

Perfiles de clientes, información de contacto y metadatos.

Subscriptions

Datos de suscripciones, ciclos de facturación y cambios de estado.

Licenses

Claves de licencia, activaciones y actualizaciones de estado.
Especifica qué entidades sincronizar mediante el parámetro scopes. Cada ejecución obtiene todos los registros de los ámbitos seleccionados y los escribe por ID, por lo que las filas existentes se actualizan en el mismo lugar en vez de duplicarse. En MongoDB, las claves de licencia se almacenan por ID de suscripción, por lo que una suscripción con varias claves de licencia conserva solo una de ellas.

Soporte de Base de Datos

Dodo Sync es compatible con MongoDB, PostgreSQL, MySQL y ClickHouse. La compatibilidad con Snowflake y otras bases de datos, las canalizaciones ETL y la sincronización en tiempo real están en desarrollo. Para contribuir con una nueva integración de base de datos, envía un pull request al repositorio de GitHub.

Primeros pasos

Usa Dodo Sync mediante la CLI para una configuración rápida o de forma programática en tu código para integrarlo en tu aplicación. Ambos métodos ofrecen la misma funcionalidad.

Uso de la CLI

Instala la CLI globalmente para ejecutarla desde cualquier ubicación:

Ejecución de la CLI

La CLI admite dos modos: interactivo, para una configuración guiada, y manual, para una configuración directa. Modo interactivo: Ejecuta el comando sin argumentos para iniciar el asistente de configuración.
Modo manual: Pasa los argumentos directamente para omitir el asistente.
Ejemplos:

Argumentos de la CLI

number
requerido
Intervalo de sincronización en segundos. La CLI se ejecuta continuamente con este intervalo. Para una sincronización única, usa .run() en tu código.
string
requerido
Tipo de base de datos: "mongodb", "postgres", "mysql" o "clickhouse".
string
requerido
URI de conexión para tu base de datos:
  • 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
requerido
Lista separada por comas de las entidades que se sincronizarán: licences, payments, customers, subscriptions. Ejemplo: "payments,customers".
string
requerido
Tu clave de API de Dodo Payments de Developer → API Keys. Usa una clave del mismo modo que --env.
string
requerido
Entorno: "live_mode" o "test_mode".
number
Límite de solicitudes por segundo. Controla la velocidad a la que el motor de sincronización realiza solicitudes de API. El valor predeterminado es 10; los valores de 100 o superiores desactivan la limitación.

Uso en tu código

Integra la funcionalidad de sincronización directamente en tu aplicación. Instálala como dependencia:

Sincronización automática (basada en intervalos)

Ejecuta la sincronización continuamente a intervalos regulares:
La opción interval es obligatoria al usar .start(). La sincronización se ejecuta continuamente con el intervalo especificado hasta que se detiene el proceso.

Sincronización manual

Activa operaciones de sincronización bajo demanda, por ejemplo, desde un trabajo cron o un endpoint de API:
La opción interval no es obligatoria para la sincronización manual. Llama a .run() cada vez que necesites sincronizar.

Ejemplo de PostgreSQL

Ejemplo de MySQL

Ejemplo de ClickHouse

Opciones del constructor

string
requerido
Tipo de base de datos: "mongodb", "postgres", "mysql" o "clickhouse".
string
requerido
Cadena de conexión para tu base de datos:
  • 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[]
requerido
Matriz de entidades que se sincronizarán: "licences", "payments", "customers", "subscriptions". Incluye cualquier combinación.
object
requerido
Configuración de la API de Dodo Payments. Consulta los tipos del SDK de TypeScript para ver todas las opciones.Propiedades obligatorias:
  • bearerToken: Tu clave de API de Dodo Payments
  • environment: "test_mode" o "live_mode"
number
Tiempo en segundos entre sincronizaciones automáticas. Obligatorio para .start() y opcional para .run().
number
Límite de solicitudes por segundo. El valor predeterminado es 10; los valores de 100 o superiores desactivan la limitación.

Información importante

MongoDB: Se crea automáticamente en tu servidor una base de datos llamada dodopayments_sync. Este nombre de base de datos es fijo y no se puede cambiar.PostgreSQL: Las tablas (Subscriptions, Payments, Licenses, Customers) se crean en la base de datos especificada en tu URI de conexión. Los datos se almacenan como JSONB.MySQL: Las tablas (Subscriptions, Payments, Licenses, Customers) se crean en la base de datos especificada en tu URI de conexión. Los datos se almacenan como JSON.ClickHouse: Las tablas (Subscriptions, Payments, Licenses, Customers) se crean mediante el motor ReplacingMergeTree. Al realizar consultas, usa la palabra clave FINAL para garantizar resultados sin duplicados.

Recursos adicionales

GitHub Repository

Consulta el código fuente, informa de problemas o contribuye con mejoras

npm Package

Consulta los detalles del paquete y las instrucciones de instalación
Última modificación el 26 de septiembre de 2026