Visão Geral
Cria uma nova checkout session e retorna uma URL de pagamento. Para entender quando e como usar Checkout Sessions, consulte o guia completo.
Sua chave de API (Bearer YOUR_API_KEY)
Chave única para evitar requisições duplicadas (válida por 24h)
Request Body
Campo Obrigatório
ID do produto a ser vendido
Campos Opcionais
ID do preço de assinatura (para pagamentos recorrentes)
Dados do cliente para pré-preencher o formulário de checkout
Nome completo do cliente (máx 255 caracteres)
Email do cliente (máx 255 caracteres)
CPF ou CNPJ (máx 14 caracteres, apenas números)
Telefone (máx 11 caracteres, apenas números)
CEP (máx 8 caracteres, apenas números)
Número do endereço (máx 20 caracteres)
Complemento (máx 255 caracteres)
Bairro (máx 100 caracteres)
Cidade (máx 100 caracteres)
Estado (2 letras, ex: “SP”)
Restringe os métodos de pagamento disponíveis. Valores aceitos: pix, creditCard, boleto
Dados personalizados para seu uso (máx 50 chaves, 500 caracteres por valor)
URL de redirecionamento após pagamento bem-sucedido (máx 500 caracteres). Use {SESSION_ID} como placeholder.
URL de redirecionamento se o cliente cancelar (máx 500 caracteres)
Seu ID de referência interno (máx 200 caracteres)
ID do afiliado para atribuição de comissão
Data de expiração da session (ISO 8601). Padrão: 24 horas após criação
Exemplo de Requisição
curl -X POST https://api.garu.com.br/api/checkout/sessions \
-H "Authorization: Bearer sk_test_sua_chave_api" \
-H "Content-Type: application/json" \
-H "X-Idempotency-Key: order_12345_checkout" \
-d '{
"product_id": 123,
"customer": {
"name": "João Silva",
"email": "joao@email.com"
},
"success_url": "https://seusite.com/sucesso?session_id={SESSION_ID}",
"cancel_url": "https://seusite.com/cancelado",
"metadata": {
"order_id": "12345"
}
}'
Resposta de Sucesso
Identificador único da session (ex: cs_ABC123xyz)
Status da session: open, complete ou expired
URL do checkout para redirecionar o cliente
ID do preço de assinatura (se aplicável)
Email do cliente pré-preenchido
Nome do cliente pré-preenchido
Seus metadados personalizados
URL de redirecionamento de sucesso
URL de redirecionamento de cancelamento
ID da transação (preenchido quando completa)
Data de expiração (ISO 8601)
Data de conclusão (ISO 8601, null se não completa)
Data de criação (ISO 8601)
Exemplo de Resposta (201 Created)
{
"data": {
"id": "cs_ABC123xyz",
"status": "open",
"url": "https://pay.garu.com.br/pay/session/abc123...",
"product_id": 123,
"price_id": null,
"customer_email": "joao@email.com",
"customer_name": "João Silva",
"metadata": {
"order_id": "12345"
},
"success_url": "https://seusite.com/sucesso?session_id={SESSION_ID}",
"cancel_url": "https://seusite.com/cancelado",
"client_reference_id": null,
"affiliate_id": null,
"transaction_id": null,
"expires_at": "2025-01-20T12:00:00.000Z",
"completed_at": null,
"created_at": "2025-01-19T12:00:00.000Z"
}
}
Erros Comuns
400 - product_id obrigatório
{
"statusCode": 400,
"message": "product_id is required",
"error": "Bad Request"
}
Solução: Inclua o campo product_id na requisição.400 - Método de pagamento inválido
{
"statusCode": 400,
"message": "Invalid payment method",
"error": "Bad Request"
}
Solução: Use apenas valores válidos em payment_methods: pix, creditCard, boleto.
{
"statusCode": 401,
"message": "Unauthorized"
}
Solução: Verifique se o header Authorization está correto.404 - Produto não encontrado
{
"statusCode": 404,
"message": "Product not found"
}
Solução: Verifique se o product_id existe e pertence ao seu vendedor.429 - Rate limit excedido
{
"statusCode": 429,
"message": "Too Many Requests"
}
Solução: Aguarde antes de fazer novas requisições. Limite: 100 requisições por minuto.
Próximos Passos
Guia de Checkout Sessions
Entenda quando e como usar
Listar Sessions
Consulte suas sessions