Asaas Checkout
Crie e integre uma página de pagamento hospedada pelo Asaas com Pix, cartão, assinaturas, parcelamentos, callbacks e Webhooks.
Crie uma página de pagamento hospedada pelo Asaas para vender produtos, serviços, assinaturas ou parcelamentos sem construir uma tela própria de checkout.
Quando usar o Asaas Checkout
Use o Asaas Checkout quando sua aplicação já possui um fluxo de compra, mas você quer direcionar o pagador para uma página hospedada pelo Asaas para concluir o pagamento.
Esse modelo é indicado para:
- vender em e-commerces e plataformas SaaS;
- aceitar Pix e cartão em um único fluxo;
- criar cobranças avulsas, parceladas ou recorrentes;
- reduzir o esforço de implementação da interface de pagamento;
- redirecionar o pagador de volta ao seu site ao concluir, cancelar ou deixar o checkout expirar;
- usar split de pagamentos quando a venda precisar distribuir valores entre contas.
Conceitos principais
| Conceito | O que significa | Quando configurar |
|---|---|---|
billingTypes | Formas de pagamento disponíveis no checkout. Valores aceitos: CREDIT_CARD e PIX. | Configure pelo menos uma forma de pagamento. |
chargeTypes | Tipo de cobrança que o checkout criará. Valores aceitos: DETACHED, RECURRENT e INSTALLMENT. | Use DETACHED para venda avulsa, RECURRENT para assinatura ou INSTALLMENT para parcelamento. |
minutesToExpire | Tempo de expiração do checkout, em minutos. Mínimo: 10. Máximo: 1440. | Defina quando a oferta, reserva ou pedido tiver validade. |
items | Produtos ou serviços exibidos na página de checkout. | Envie nome, quantidade, valor e imagem em Base64 para apresentar a venda ao pagador. |
customerData | Dados do pagador usados para preencher o checkout. | Envie quando sua aplicação já conhece o cliente e quer reduzir etapas no pagamento. |
callback | URLs de redirecionamento após sucesso, cancelamento ou expiração. | Configure para retornar o pagador ao seu site. |
externalReference | Identificador do checkout no seu sistema. Máximo: 200 caracteres. | Use para relacionar o checkout ao pedido, carrinho ou contrato interno. |
subscription | Dados de assinatura. | Obrigatório quando chargeTypes inclui RECURRENT. |
installment | Dados de parcelamento. | Envie quando chargeTypes inclui INSTALLMENT. |
splits | Regras de divisão do valor entre contas. | Use quando a venda precisa distribuir valores automaticamente. |
Fluxo de integração
- Crie o pedido no seu sistema e gere um identificador interno.
- Envie uma requisição para criar o checkout com formas de pagamento, tipo de cobrança, itens, dados do cliente e URLs de callback.
- Armazene o
id, olink, ostatuse oexternalReferenceretornados pela API. - Redirecione o pagador para o
linkdo checkout. - Aguarde a ação do pagador. A criação do checkout não confirma o pagamento.
- Receba os eventos de Webhook para atualizar o status financeiro no seu sistema.
- Use o
externalReferencepara reconciliar o evento recebido com o pedido original.
Pedido criado no seu sistema
↓
Criar Checkout no Asaas
↓
Receber link do Checkout
↓
Redirecionar pagador
↓
Pagador conclui, cancela ou deixa expirar
↓
Webhook informa o resultado
↓
Sistema atualiza o pedidoA URL de callback melhora a experiência de navegação do pagador, mas não substitui Webhooks. Use Webhooks para confirmar eventos financeiros de forma assíncrona.
Exemplo: criar um checkout avulso
Use este exemplo para criar um checkout com Pix e cartão de crédito para uma venda avulsa.
curl --request POST \
--url https://api-sandbox.asaas.com/v3/checkouts \
--header 'accept: application/json' \
--header 'access_token: $ASAAS_API_KEY' \
--header 'content-type: application/json' \
--data '{
"billingTypes": ["PIX", "CREDIT_CARD"],
"chargeTypes": ["DETACHED"],
"minutesToExpire": 60,
"externalReference": "pedido-1001",
"callback": {
"successUrl": "https://example.com/asaas/checkout/success",
"cancelUrl": "https://example.com/asaas/checkout/cancel",
"expiredUrl": "https://example.com/asaas/checkout/expired"
},
"items": [
{
"externalReference": "produto-001",
"name": "Camiseta",
"description": "Camiseta algodao",
"quantity": 2,
"value": 100,
"imageBase64": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+/p9sAAAAASUVORK5CYII="
}
],
"customerData": {
"name": "John Doe",
"cpfCnpj": "24971563792",
"email": "[email protected]",
"phone": "4738010919"
}
}'Resposta de sucesso:
{
"id": "131ca662-56c8-4479-b5b3-fd61a413fce7",
"link": "https://sandbox.asaas.com/checkoutSession/show/131ca662-56c8-4479-b5b3-fd61a413fce7",
"status": "ACTIVE",
"billingTypes": ["PIX", "CREDIT_CARD"],
"chargeTypes": ["DETACHED"],
"minutesToExpire": 60,
"externalReference": "pedido-1001"
}Depois de receber essa resposta, salve o id do checkout e redirecione o pagador para o link.
Regras e comportamentos importantes
- Envie pelo menos um valor em
billingTypese pelo menos um valor emchargeTypes. - Configure
subscriptionquando usarRECURRENT. - Configure
installmentquando usarINSTALLMENT;maxInstallmentCountaceita valores de1a21. - Use
minutesToExpireentre10e1440minutos. - A criação do checkout retorna uma página de pagamento, não uma confirmação financeira.
- O checkout pode ficar
ACTIVE,CANCELED,EXPIREDouPAID. - Pagamentos por Pix e cartão podem ter prazos e comportamentos de confirmação diferentes.
- Webhooks usam entrega do tipo at least once (o mesmo evento pode chegar mais de uma vez). Implemente idempotência usando o identificador do evento.
Tratamento de erros
A API pode recusar a criação do checkout quando houver dados inválidos ou autenticação incorreta.
| Status | Quando ocorre | Como tratar |
|---|---|---|
400 Bad Request | O payload não respeita as regras do checkout, como campos obrigatórios ausentes ou combinações incompatíveis. | Exiba uma mensagem operacional, registre o payload final enviado e corrija os campos indicados em errors. |
401 Unauthorized | A chave informada em access_token é inválida. | Verifique a chave da conta e o ambiente usado na requisição. |
Exemplo de erro de validação:
{
"errors": [
{
"code": "error_code",
"description": "Error description"
}
]
}Exemplo de autenticação inválida:
{
"errors": [
{
"code": "invalid_access_token",
"description": "A chave de API fornecida é inválida"
}
]
}Boas práticas de implementação
- Salve o
externalReferencejunto ao pedido para conciliar eventos, relatórios e suporte. - Registre o payload final enviado à API em ambiente seguro para facilitar diagnóstico de erros
400. - Não marque o pedido como pago usando apenas o redirecionamento para
successUrl. - Processe Webhooks de forma idempotente para evitar duplicidade em eventos reenviados.
- Defina um tempo de expiração compatível com a jornada do pagador.
- Teste primeiro em Sandbox antes de liberar o checkout em produção.
Conteúdos relacionados
- Criar novo checkout
- Cancelar um checkout
- Receba eventos do Asaas no seu endpoint de Webhook
- Eventos de Webhooks
Updated 17 days ago
