Skip to main content
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:
POST /subscriptions (the SDK’s subscriptions.create method) está obsoleto. Ele ainda funciona para integrações existentes, mas novas integrações devem criar assinaturas por meio de uma Checkout Session.
billing exige, 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. Os campos de valor, como product_price, estão na denominação mais baixa da moeda (por exemplo, 2500 = US$ 25,00).

Faturamento baseado em uso

Ingerir eventos de uso

Acompanhe eventos personalizados:

Listar eventos de uso

Paginação

Os endpoints de listagem retornam uma página tipada cujo campo items contém a página atual de resultados. Transmita cada item de 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>. As falhas são representadas pelo enum dodopayments::Error. Faça a correspondência com ele para tratar os erros da API de forma distinta dos erros de transporte:

Endpoints não documentados

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

Recursos

GitHub Repository

Visualize o código-fonte e contribua

Crates.io

Visualize o crate publicado e as versões

API Reference

Documentação completa da API

Discord Community

Obtenha ajuda e conecte-se com desenvolvedores

Suporte

Precisa de ajuda com o Rust SDK?

Contribuição

Aceitamos contribuições! Consulte as diretrizes de contribuição para começar.
Última modificação em 17 de agosto de 2026