Pular para o conteúdo principal

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

API Response

All methods above return the same response structure:
1

Get the checkout URL

Extract the checkout_url from the API response.
2

Redirect your customer

Direct your customer to the checkout URL to complete their purchase.
Alternative Integration Options: Instead of redirecting, you can embed the checkout directly in your page using Overlay Checkout (modal overlay) or Inline Checkout (fully embedded). Both options use the same checkout session URL.
3

Handle the return

After payment, customers are redirected to your return_url with query parameters including payment/subscription ID, status, customer email, and any license keys. See the return_url parameter docs for the full list.

Request Body

Required Fields

Essential fields needed for every checkout session

Optional Fields

Additional configuration to customize your checkout experience

Required Fields

product_cart
array
obrigatório
Array of products to include in the checkout session. Each product must have a valid product_id from your Dodo Payments dashboard.
Mixed Checkout: You can combine one-time payment products and subscription products in the same checkout session. This enables powerful use cases like setup fees with subscriptions, hardware bundles with SaaS, and more.
Encontre seus IDs de Produto: Você pode encontrar os IDs de produtos no painel do Dodo Payments em Produtos → Ver Detalhes, ou usando o API Listar Produtos.

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
object
Informações do cliente. Você pode anexar um cliente existente usando seu ID ou criar um novo registro de cliente durante o checkout.
Anexe um cliente existente à sessão de checkout usando seu ID.
billing_address
object
Informações de endereço de cobrança para cálculo preciso de impostos, prevenção de fraudes e conformidade regulatória.
Quando confirm é definido como true, todos os campos de endereço de cobrança se tornam obrigatórios para a criação bem-sucedida da sessão.
allowed_payment_method_types
array
Controle quais métodos de pagamento estão disponíveis para clientes durante o checkout. Isso ajuda a otimizar para mercados específicos ou requisitos de negócios.Opções Disponíveis: credit, debit, upi_collect, apple_pay, google_pay, amazon_pay, klarna, affirm, afterpay_clearpay, cashapp, multibanco, bancontact_card, eps, ideal, przelewy24, paypal, sunbit
Crítico: Sempre inclua credit e debit como opções de fallback para evitar falhas no checkout quando métodos de pagamento preferidos não estão disponíveis.
Exemplo:
billing_currency
string
Substitua a seleção de moeda padrão com uma moeda de cobrança fixa. Usado códigos de moeda ISO 4217.Moedas Suportadas: USD, EUR, GBP, CAD, AUD, INR, e maisExemplo: "USD" para Dólares Americanos, "EUR" para Euros
Este campo só é efetivo quando o precificação adaptativa está ativado. Se a precificação adaptativa estiver desativada, a moeda padrão do produto será usada.
show_saved_payment_methods
boolean
padrão:"false"
Exiba métodos de pagamento salvos anteriormente para clientes retornantes, melhorando a velocidade do checkout e a experiência do usuário.
return_url
string
URL para redirecionar os clientes após a conclusão do pagamento. O aplicativo Dodo Payments anexa os seguintes parâmetros de consulta ao seu URL ao redirecionar:Exemplos de URLs de redirecionamento:
Use os parâmetros de consulta license_key e email para exibir chaves de licença ou enviar uma confirmação imediatamente em sua página de retorno, sem precisar de uma chamada de API extra.
cancel_url
string
URL para redirecionar clientes quando clicam no botão voltar ou cancelam a sessão de checkout. Se não for fornecido, o botão voltar não será exibido.
Defina um cancel_url para dar aos clientes um caminho claro para retornar ao seu site sem completar a compra. Isso melhora a experiência de checkout e reduz atritos.
confirm
boolean
padrão:"false"
Se verdadeiro, finaliza todos os detalhes da sessão imediatamente. A API lançará um erro se dados obrigatórios estiverem ausentes.
discount_codes
array
Aplique um ou mais códigos de desconto empilhados à 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á com desconto e assim por diante), até um máximo de 20 códigos por sessão.
O campo singular discount_code abaixo está obsoleto mas ainda totalmente suportado — integrações existentes continuam funcionando sem alterações. Não pode ser combinado com discount_codes na mesma solicitação. Migre para discount_codes quando conveniente para aproveitar as vantagens da empilhamento.
discount_code
string
obsoleto
Obsoleto — prefira discount_codes para novas integrações. Este campo ainda funciona para compatibilidade com versões anteriores, mas não pode ser combinado com discount_codes na mesma solicitação.
metadata
object
Pares de chave-valor personalizados para armazenar informações adicionais sobre a sessão.
force_3ds
boolean
Substitua o comportamento padrão do 3DS do comerciante para esta sessão.
minimal_address
boolean
padrão:"false"
Habilite o modo de coleta mínima de endereço. Quando habilitado, o checkout coleta apenas:
  • País: Sempre necessário para determinação de impostos
  • Código Postal/CEP: Apenas em regiões onde é necessário para cálculo de imposto sobre vendas, IVA ou GST
Isso reduz significativamente o atrito no checkout eliminando campos de formulário desnecessários.
Habilite o endereço mínimo para a conclusão mais rápida do checkout. A coleta completa de endereço permanece disponível para empresas que exigem detalhes completos de cobrança.
customization
object
Personalize a aparência e o comportamento da interface de checkout.
feature_flags
object
Configure recursos e comportamentos específicos para a sessão de checkout.
custom_fields
array
Coletar informações adicionais dos clientes durante o checkout com campos de formulário personalizados. Você pode definir até 5 campos personalizados por sessão de checkout. As respostas dos clientes estão incluídas nas cargas úteis do webhook e disponíveis via API.
As respostas dos clientes aos campos personalizados estão incluídas em:
  • Webhooks: payment.succeeded, subscription.active e outros eventos relevantes contêm o array custom_field_responses
  • Respostas da API: Objetos de pagamento e assinatura incluem custom_field_responses
subscription_data
object
Configuração adicional para sessões de checkout contendo produtos de assinatura.

Exemplos de Uso

Aqui estão 10 exemplos abrangentes mostrando diferentes configurações de sessão de checkout para vários cenários de negócios:

1. Checkout Simples de Produto Único

2. Carrinho com Múltiplos Produtos

3. Assinatura com Período de Teste

4. Checkout Pré-confirmado

Quando confirm é definido como true, o cliente será direcionado diretamente para a página de checkout, ignorando quaisquer etapas de confirmação.

5. Checkout com Sobrescrita de Moeda

A sobrescrita billing_currency só tem efeito quando a moeda adaptativa está ativada nas configurações da sua conta. Se a moeda adaptativa estiver desativada, esse parâmetro não terá efeito.

6. Métodos de Pagamento Salvos para Clientes Retornantes

7. Checkout B2B com Coleta de ID Fiscal

8. Checkout com Tema Escuro com Códigos de Desconto Acumulados

9. Métodos de Pagamento Regionais (UPI para Índia)

Para informações detalhadas sobre configuração e teste do UPI, veja a página Métodos de Pagamento na Índia.

10. Checkout BNPL (Compre Agora Pague Depois)

Para informações detalhadas sobre configuração e teste do BNPL, veja a página Compre Agora Pague Depois (BNPL).

11. Usando Métodos de Pagamento Existentes para Checkout Instantâneo

Use um método de pagamento salvo do cliente para criar uma sessão de checkout que processa imediatamente, pulando a coleta do método de pagamento:
Ao usar payment_method_id, confirm deve ser definido como true e um customer_id existente deve ser fornecido. O método de pagamento será validado para a moeda da transação.
O método de pagamento deve pertencer ao cliente e ser compatível com a moeda da transação. Isso permite compras com um clique para clientes retornantes.
Gere links de pagamento encurtados e compartilháveis com slugs personalizados:
Links curtos são perfeitos para compartilhamento via SMS, e-mail ou redes sociais. Eles são mais fáceis de lembrar e geram mais confiança do que URLs longas.

13. Pulando Página de Sucesso do Pagamento com Redirecionamento Imediato

Redirecione os clientes imediatamente após a conclusão do pagamento, pulando a página padrão de sucesso:
Use redirect_immediately: true quando você tiver uma página de sucesso personalizada que forneça uma melhor experiência ao usuário do que a página padrão de sucesso de pagamento. Isso é especialmente útil para aplicativos móveis e fluxos de checkout incorporados.
Quando redirect_immediately está habilitado, os clientes são redirecionados para seu return_url imediatamente após a conclusão do pagamento, pulando totalmente a página de sucesso padrão.

14. Forçando um Idioma

Forçar o checkout a ser exibido em um idioma específico, substituindo a detecção de idioma do navegador do cliente:
Use force_language quando você souber o idioma preferido do cliente (por exemplo, a partir das configurações da conta) ou ao segmentar mercados regionais específicos.
Idiomas suportados: Árabe (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. Coletando Campos Personalizados

Colete informações adicionais dos clientes durante o checkout usando campos personalizados:
As respostas dos campos personalizados são automaticamente incluídas nas cargas úteis do webhook (payment.succeeded, subscription.active, etc.) e podem ser recuperadas via API. Use-os para enriquecer seu CRM, acionar fluxos de integração ou personalizar a experiência do cliente.
Tipos de campo disponíveis: text, number, email, url, date, dropdown, boolean

Pré-visualização de Sessões de Checkout

Antes de criar uma sessão de checkout, você pode pré-visualizar a discriminação de preços incluindo impostos, descontos e totais. Isso é útil para exibir preços precisos aos clientes antes de procederem ao checkout.

Preview API Reference

Veja a documentação completa do endpoint de pré-visualização.

Diferenças Principais

Anteriormente, ao criar um link de pagamento com Links Dinâmicos, era necessário fornecer o endereço completo de cobrança do cliente. Com as Sessões de Checkout, isso não é mais necessário. Você pode simplesmente passar as informações que possui, e nós cuidaremos do resto. Por exemplo:
  • Se você souber apenas o país de cobrança do cliente, basta fornecer isso.
  • O fluxo de checkout irá coletar automaticamente os detalhes ausentes antes de mover o cliente para a 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, você pode fornecer o conjunto completo de dados e incluir confirm=true no corpo da sua solicitação.

Processo de Migração

Migrar de Links Dinâmicos para Sessões de Checkout é simples:
1

Update your integration

Atualize sua integração para usar o novo método de API ou SDK.
2

Adjust request payload

Ajuste a carga da solicitação de acordo com o formato das Sessões de Checkout.
3

That's it!

Sim. Nenhum tratamento adicional ou etapas especiais de migração são necessárias da sua parte.

Referência de 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 pré-visualizar preços, impostos e totais antes de criar uma sessão
Última modificação em 9 de julho de 2026