Skip to main content
Sincronize seus dados do Dodo Payments com seu próprio banco de dados para analytics, relatórios e integrações. O mecanismo de sincronização replica automaticamente pagamentos, clientes, assinaturas e licenças para MongoDB, PostgreSQL, MySQL ou ClickHouse.
Pacote: dodo-sync no npm | Código-fonte: GitHub

O que você pode sincronizar?

Escolha qualquer combinação destas entidades:

Payments

Todas as transações de pagamento, incluindo pagamentos únicos, reembolsos e atualizações de status.

Customers

Perfis de clientes, informações de contato e metadados.

Subscriptions

Dados de assinatura, ciclos de cobrança e alterações de status.

Licenses

Chaves de licença, ativações e atualizações de status.
Especifique quais entidades sincronizar usando o parâmetro scopes. Cada execução busca todos os registros nos escopos selecionados e os grava por ID, portanto as linhas existentes são atualizadas no local em vez de duplicadas. No MongoDB, as chaves de licença são armazenadas pelo ID da assinatura, então uma assinatura com várias chaves de licença mantém apenas uma delas.

Suporte a Banco de Dados

O Dodo Sync é compatível com MongoDB, PostgreSQL, MySQL e ClickHouse. O suporte para Snowflake e outros bancos de dados, pipelines de ETL e sincronização em tempo real está em desenvolvimento. Para contribuir com uma nova integração de banco de dados, envie um pull request para o repositório no GitHub.

Primeiros passos

Use o Dodo Sync por meio do CLI para uma configuração rápida ou de forma programática no seu código para integrá-lo ao seu aplicativo. Ambos os métodos oferecem a mesma funcionalidade.

Usando o CLI

Instale o CLI globalmente para executá-lo de qualquer lugar:

Executando o CLI

O CLI oferece dois modos: interativo, para uma configuração guiada, e manual, para configuração direta. Modo interativo: execute sem argumentos para iniciar o assistente de configuração.
Modo manual: passe os argumentos diretamente para ignorar o assistente.
Exemplos:

Argumentos do CLI

number
obrigatório
Intervalo de sincronização em segundos. O CLI é executado continuamente nesse intervalo. Para uma sincronização única, use .run() no seu código.
string
obrigatório
Tipo de banco de dados: "mongodb", "postgres", "mysql" ou "clickhouse".
string
obrigatório
URI de conexão do seu banco de dados:
  • 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
obrigatório
Lista de entidades separadas por vírgulas para sincronizar: licences, payments, customers, subscriptions. Exemplo: "payments,customers".
string
obrigatório
Sua chave de API do Dodo Payments em Developer → API Keys. Use uma chave do mesmo modo que --env.
string
obrigatório
Ambiente: "live_mode" ou "test_mode".
number
Limite de taxa em solicitações por segundo. Controla a velocidade com que o mecanismo de sincronização faz solicitações de API. O padrão é 10; valores de 100 ou superiores desativam a limitação.

Usando no seu código

Integre o recurso de sincronização diretamente ao seu aplicativo. Instale-o como uma dependência:

Sincronização automática (baseada em intervalo)

Execute a sincronização continuamente em intervalos regulares:
A opção interval é obrigatória ao usar .start(). A sincronização é executada continuamente no intervalo especificado até que o processo seja interrompido.

Sincronização manual

Acione operações de sincronização sob demanda, por exemplo, a partir de um cron job ou endpoint de API:
A opção interval não é obrigatória para a sincronização manual. Chame .run() sempre que precisar sincronizar.

Exemplo de PostgreSQL

Exemplo de MySQL

Exemplo de ClickHouse

Opções do construtor

string
obrigatório
Tipo de banco de dados: "mongodb", "postgres", "mysql" ou "clickhouse".
string
obrigatório
String de conexão do seu banco de dados:
  • 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[]
obrigatório
Array de entidades para sincronizar: "licences", "payments", "customers", "subscriptions". Inclua qualquer combinação.
object
obrigatório
Configuração da API do Dodo Payments. Consulte os tipos do SDK do TypeScript para ver todas as opções.Propriedades obrigatórias:
  • bearerToken: sua chave de API do Dodo Payments
  • environment: "test_mode" ou "live_mode"
number
Tempo, em segundos, entre sincronizações automáticas. Obrigatório para .start() e opcional para .run().
number
Limite de taxa em solicitações por segundo. O padrão é 10; valores de 100 ou superiores desativam a limitação.

Informações importantes

MongoDB: um banco de dados chamado dodopayments_sync é criado automaticamente no seu servidor. Esse nome de banco de dados é fixo e não pode ser alterado.PostgreSQL: as tabelas (Subscriptions, Payments, Licenses, Customers) são criadas no banco de dados especificado na sua URI de conexão. Os dados são armazenados como JSONB.MySQL: as tabelas (Subscriptions, Payments, Licenses, Customers) são criadas no banco de dados especificado na sua URI de conexão. Os dados são armazenados como JSON.ClickHouse: as tabelas (Subscriptions, Payments, Licenses, Customers) são criadas usando o mecanismo ReplacingMergeTree. Ao consultar, use a palavra-chave FINAL para garantir resultados sem duplicatas.

Recursos adicionais

GitHub Repository

Visualize o código-fonte, relate problemas ou contribua com melhorias

npm Package

Consulte os detalhes do pacote e as instruções de instalação
Última modificação em 26 de setembro de 2026