Quick Start Guide
Get your first checkout session running in under 5 minutes
API Reference & Live Testing
Explore the full API documentation and interactively test Checkout Session requests and responses.
Preview Checkout
Calculate pricing, taxes, and totals before creating a session.
Session Validity: Checkout sessions are valid for 24 hours by default. If you pass
confirm=true in your request, the session will only be valid for 15 minutes.Prerequisites
1
Dodo Payments Account
You’ll need an active Dodo Payments merchant account with API access.
2
API Credentials
Generate your API credentials from the Dodo Payments dashboard:
3
Products Setup
Create your products in the Dodo Payments dashboard before implementing checkout sessions.
Creating Your First Checkout Session
- Node.js SDK
- Python SDK
- REST API
API Response
All methods above return the same response structure:session_id tem presença garantida. Dois casos retornam campos adicionais ou em menor quantidade:
payment_method_idfoi fornecido — a cobrança é processada imediatamente echeckout_urlénull. Use opayment_idretornado.confirm: truecriou o pagamento no momento da criação da sessão — a resposta também incluipayment_id,client_secretepublishable_keypara uso com o SDK de checkout do Dodo Payments.
O
checkout_url gerado é de uso único e expira em até 24 horas. Não o armazene em cache nem o reutilize entre clientes ou tentativas de pagamento — crie uma nova sessão de checkout sempre que precisar de um link atualizado.1
Get the checkout URL
Extraia o
checkout_url da resposta da API.2
Redirect your customer
Direcione seu cliente para a URL de checkout para concluir a compra.
3
Handle the return
Após o pagamento, os clientes são redirecionados para seu
return_url com parâmetros de consulta que incluem o ID do pagamento/assinatura, o status, o e-mail do cliente e quaisquer chaves de licença. Consulte a documentação dos parâmetros de return_url para ver a lista completa.Corpo da solicitação
Required Fields
Campos essenciais necessários para cada sessão de checkout
Optional Fields
Configuração adicional para personalizar sua experiência de checkout
Campos obrigatórios
array
obrigatório
Array de produtos a serem incluídos na sessão de checkout. Cada produto deve ter um
product_id válido do seu painel do Dodo Payments.Campos opcionais
Configure estes campos para personalizar a experiência de checkout e adicionar lógica de negócios ao seu fluxo de pagamento.Customer Information
Customer Information
object
Informações do cliente. Você pode associar um cliente existente usando o ID dele ou criar um novo registro de cliente durante o checkout.
- Attach Existing Customer
- New Customer
Associe um cliente existente à sessão de checkout usando o ID dele.
object
Informações do endereço de cobrança para cálculo preciso de impostos, prevenção contra fraudes e conformidade regulatória.
Quando
confirm é definido como true, todos os campos do endereço de cobrança se tornam obrigatórios para a criação bem-sucedida da sessão.Payment Configuration
Payment Configuration
array
Controle quais métodos de pagamento ficam disponíveis para os clientes durante o checkout. Isso ajuda a otimizar o checkout para mercados específicos ou requisitos comerciais.Opções comuns:
credit, debit, upi_collect, apple_pay, google_pay, amazon_pay, klarna, affirm, afterpay_clearpay, cashapp, ach, multibanco, bancontact_card, eps, ideal, blik, paypal. Este não é o conjunto completo — consulte a referência da API Create Checkout Session para ver todos os valores aceitos.Exemplo:string
Substitua a seleção de moeda padrão por uma moeda de cobrança fixa. Usa códigos de moeda ISO 4217.Moedas compatíveis:
USD, EUR, GBP, CAD, AUD, INR e outrasExemplo: "USD" para dólares americanos, "EUR" para eurosEste campo só tem efeito quando o Adaptive Currency está habilitado. Se o Adaptive Currency estiver desabilitado, a moeda padrão do produto será usada.
boolean
padrão:"false"
Exiba métodos de pagamento salvos anteriormente para clientes recorrentes, melhorando a velocidade do checkout e a experiência do usuário.
Session Management
Session Management
string
URL para redirecionar os clientes após a conclusão do pagamento. O Dodo Payments adiciona os seguintes parâmetros de consulta à sua URL durante o redirecionamento:
Exemplos de URLs de redirecionamento:
string
URL para redirecionar os clientes quando eles clicarem no botão de voltar ou cancelarem a sessão de checkout. Se não for fornecida, o botão de voltar não será exibido.
boolean
padrão:"false"
Se for true, finaliza imediatamente todos os detalhes da sessão. A API lançará um erro se houver dados obrigatórios ausentes.
array
Aplique um ou mais códigos de desconto em sequência à sessão de checkout. Os códigos são aplicados na ordem do array (o primeiro código reduz o preço-base, o segundo reduz o preço já descontado e assim por diante), até o máximo de 20 códigos por sessão.
O campo singular
discount_code abaixo está obsoleto, mas ainda é totalmente compatível — as integrações existentes continuam funcionando sem alterações. Ele não pode ser combinado com discount_codes na mesma solicitação. Migre para discount_codes quando for conveniente para aproveitar a aplicação em sequência.string
obsoleto
Obsoleto — prefira
discount_codes para novas integrações. Este campo continua funcionando para compatibilidade retroativa, mas não pode ser combinado com discount_codes na mesma solicitação.object
Pares de chave-valor personalizados para armazenar informações adicionais sobre a sessão.
boolean
Substitua o comportamento padrão de 3DS do comerciante para esta sessão.
boolean
padrão:"false"
Habilite o modo de coleta mínima de endereço. Quando habilitado, o checkout coleta apenas:
- País: sempre obrigatório para a determinação de impostos
- ZIP/Código postal: somente em regiões onde é necessário para o cálculo de sales tax, VAT ou GST
string
Um método de pagamento salvo pertencente ao cliente associado. Requer
confirm: true e um customer.customer_id existente. Quando definido, a cobrança é processada imediatamente e checkout_url é retornado como null — use o payment_id retornado.boolean
padrão:"false"
Se for true, retorna uma URL de checkout encurtada em vez da URL completa da sessão.
string
ID da coleção de produtos para o fluxo de checkout baseado em coleção.
string
ID fiscal do cliente (por exemplo, um número de VAT). Requer
billing_address com um country.string
Nome comercial ou jurídico opcional associado ao ID fiscal. Quando fornecido juntamente com um
tax_id válido, ele é exibido na fatura em vez do nome pessoal do cliente.integer
Substitua o limite mínimo de mandato no nível do comerciante (em paise de INR) para e-mandates de INR em cartões indianos.
UI Customization & Features
UI Customization & Features
Custom Fields
Custom Fields
array
Colete informações adicionais dos clientes durante o checkout usando campos personalizados de formulário. Você pode definir até 5 campos personalizados por sessão de checkout. As respostas dos clientes são incluídas nos payloads de webhook e ficam disponíveis pela API.
As respostas dos clientes aos campos personalizados são incluídas em:
- Webhooks:
payment.succeeded,subscription.activee outros payloads de eventos relevantes contêm o arraycustom_field_responses - Respostas da API: os objetos de pagamento e assinatura incluem
custom_field_responses
Subscription Configuration
Subscription Configuration
object
Configuração adicional para sessões de checkout que contêm produtos de assinatura.
Exemplos de uso
Veja 10 exemplos completos que apresentam diferentes configurações de sessões de checkout para vários cenários comerciais:1. Checkout simples de um único produto
2. Carrinho com vários produtos
3. Assinatura com período de teste
4. Checkout pré-confirmado
Quando
confirm é definido como true, o cliente é levado diretamente à página de checkout, ignorando todas as etapas de confirmação.5. Checkout com substituição de moeda
A substituição de
billing_currency só entra em vigor quando o Adaptive Currency está habilitado nas configurações da sua conta. Se o Adaptive Currency estiver desabilitado, este parâmetro não terá efeito.6. Métodos de pagamento salvos para clientes recorrentes
7. Checkout B2B com coleta de ID fiscal
8. Checkout com tema escuro e códigos de desconto em sequência
9. Métodos de pagamento regionais (UPI para a Índia)
Para obter informações detalhadas sobre a configuração e os testes de UPI, consulte a página Métodos de pagamento da Índia.10. Checkout BNPL (Buy Now Pay Later)
Para obter informações detalhadas sobre a configuração e os testes de BNPL, consulte a página Buy Now Pay Later (BNPL).11. Uso de métodos de pagamento existentes para checkout instantâneo
Use o método de pagamento salvo de um cliente para criar uma sessão de checkout que seja processada imediatamente, ignorando a coleta do método de pagamento:O método de pagamento deve pertencer ao cliente e ser compatível com a moeda do pagamento. Isso permite compras com um clique para clientes recorrentes.
12. Links curtos para URLs de pagamento mais limpas
Gere links de pagamento encurtados e compartilháveis com slugs personalizados:13. Ignorar a página de sucesso do pagamento com redirecionamento imediato
Redirecione os clientes imediatamente após a conclusão do pagamento, ignorando a página de sucesso padrão:Quando
redirect_immediately está habilitado, os clientes são redirecionados para seu return_url imediatamente após a conclusão do pagamento, ignorando completamente a página de sucesso padrão.14. Forçar um idioma
Force o checkout a ser exibido em um idioma específico, substituindo a detecção do idioma do navegador do cliente:ar), catalão (ca), chinês (zh), holandês (nl), inglês (en), francês (fr), alemão (de), hebraico (he), indonésio (id), italiano (it), japonês (ja), coreano (ko), malaio (ms), polonês (pl), português (pt), romeno (ro), russo (ru), espanhol (es), sueco (sv), tailandês (th), turco (tr)
15. Coletar campos personalizados
Colete informações adicionais dos clientes durante o checkout usando campos personalizados:As respostas dos campos personalizados são incluídas automaticamente nos payloads de webhook (
payment.succeeded, subscription.active etc.) e podem ser recuperadas pela API. Use-as para enriquecer seu CRM, acionar fluxos de onboarding ou personalizar a experiência do cliente.text, number, email, url, date, dropdown, boolean
Visualizar sessões de checkout
Antes de criar uma sessão de checkout, você pode visualizar o detalhamento de preços, incluindo impostos, descontos e totais. Isso é útil para exibir preços precisos aos clientes antes que eles avancem para o checkout.Quando o carrinho contém um produto de assinatura, a resposta de visualização também retorna um
next_billing_date — uma prévia da próxima data de cobrança, para que você possa exibi-la antes da criação da assinatura. Ela é calculada em relação ao momento atual: now + trial period quando há um período de teste; caso contrário, now + one payment frequency. O campo é omitido para carrinhos exclusivamente de compras únicas. Esta é uma estimativa baseada no momento da visualização; o next_billing_date oficial é definido quando a assinatura é ativada.A visualização também retorna
trial_period_days (a duração efetiva do período de teste, gratuito ou pago) e trial_amount (a cobrança de teste por unidade após os descontos, nas unidades menores da moeda do preço). trial_amount está presente somente para um teste pago e é null para um teste gratuito ou sem teste. Use current_breakup para obter o total tributado efetivamente devido hoje.- Node.js SDK
- Python SDK
Preview API Reference
Veja a documentação completa do endpoint de visualização.
Migrar de Dynamic Links para Checkout Sessions
Principais diferenças
Anteriormente, ao criar um link de pagamento com Dynamic Links, era necessário fornecer o endereço de cobrança completo do cliente. Com Checkout Sessions, isso não é mais necessário. Você pode simplesmente enviar as informações que tiver, e cuidaremos do restante. Por exemplo:- Se você souber apenas o país de cobrança do cliente, forneça somente essa informação.
- O fluxo de checkout coletará automaticamente os dados ausentes antes de levar o cliente à página de pagamento.
- Por outro lado, se você já tiver todas as informações necessárias e quiser ir diretamente para a página de pagamento, poderá enviar o conjunto completo de dados e incluir
confirm=trueno corpo da solicitação.
Processo de migração
A migração de Dynamic Links para Checkout Sessions é simples:1
Update your integration
Atualize sua integração para usar o novo método da API ou do SDK.
2
Adjust request payload
Ajuste o payload da solicitação de acordo com o formato de Checkout Sessions.
3
That's it!
Sim. Nenhum tratamento adicional ou etapa especial de migração é necessário da sua parte.
Referência da API relacionada
Create Checkout Session
Referência completa da API para criar sessões de checkout com todos os parâmetros e opções disponíveis
Preview Checkout Session
Referência da API para visualizar preços, impostos e totais antes de criar uma sessão