Pular para o conteúdo principal
O SDK Rust fornece acesso conveniente, orientado a async, à API REST do Dodo Payments a partir de aplicações escritas em Rust. Oferece requisições e respostas fortemente tipadas, auxiliares de paginação embutidos, e timeouts e ambientes configuráveis.

Instalação

Adicione o SDK ao seu projeto com Cargo:
Ou adicione manualmente ao seu Cargo.toml:
O SDK requer Rust 1.75 ou posterior, aproveitando os recursos modernos de async para um desempenho otimizado.

Início Rápido

O cliente lê sua chave de API do ambiente DODO_PAYMENTS_API_KEY por padrão. Inicialize o cliente e crie sua primeira sessão de checkout:
Sempre armazene suas chaves de API de forma segura usando variáveis de ambiente. Nunca as codifique diretamente no seu código-fonte.

Recursos Principais

Async First

Construído sobre Tokio e reqwest com suporte a async/await em toda a aplicação

Strong Typing

Requisições e respostas fortemente tipadas para segurança em tempo de compilação

Auto-Pagination

Transmita cada item através das páginas ou avance uma página por vez

Configurable

Configure ambientes, timeouts e URLs base por cliente

Configuração

Variáveis de Ambiente

Por padrão, Client::from_env() lê sua chave de API da variável de ambiente DODO_PAYMENTS_API_KEY e usa o URL base padrão, a menos que você defina DODO_PAYMENTS_BASE_URL:
Você também pode configurar o cliente explicitamente. Client::new retorna um Result, então descompacte-o com ? dentro de uma função que retorna dodopayments::Result:

Ambientes

O URL base padrão é https://live.dodopayments.com. Selecione outro ambiente com o enum Environment em vez de codificar URLs diretamente:
Para continuar lendo a chave de API de DODO_PAYMENTS_API_KEY via from_env() enquanto direciona para um ambiente não padrão, sobreponha isso na configuração:

Timeouts

O timeout padrão para requisições é de 30 segundos. Sobrescreva-o por cliente:

Operações Comuns

Criar uma Sessão de Checkout

Gere uma sessão de checkout:

Gerenciar Clientes

Crie e recupere informações do cliente:

Gerenciar Assinaturas

Crie e gerencie assinaturas recorrentes:
billing requer no mínimo o código ISO de duas letras country. customer é um enum CustomerRequest — passe AttachExisting para um cliente existente ou New para um novo. Campos de valor como product_price estão na menor denominação de moeda (por exemplo, 2500 = $25,00 USD).

Cobrança Baseada em Uso

Ingestão de Eventos de Uso

Rastrear eventos personalizados:

Listar Eventos de Uso

Paginação

Os endpoints de lista retornam uma página tipada cujo campo items contém a página atual de resultados. Transmita cada item em todas as páginas com into_stream:
Ou avance uma página por vez com get_next_page:

Tratamento de Erros

Todos os métodos retornam um dodopayments::Result<T>. Falhas são representadas pelo enum dodopayments::Error. Faça um match para lidar com erros da API distintamente de erros de transporte:

Endpoints Não Documentados

Para chamar um endpoint ainda não exposto como método tipado, use o construtor de baixo nível request, que aplica autenticação e o URL base:

Recursos

GitHub Repository

Visualizar código-fonte e contribuir

Crates.io

Visualizar o crate publicado e versões

API Reference

Documentação completa da API

Discord Community

Obtenha ajuda e conecte-se com desenvolvedores

Suporte

Precisa de ajuda com o SDK Rust?

Contribuição

Nós recebemos contribuições! Confira as diretrizes de contribuição para começar.
Última modificação em 26 de junho de 2026