Documentação › Endpoints v1 › Criar checkout

Criar checkout

Monta o carrinho com as variantes informadas e retorna o link de checkout da loja, pronto para redirecionar o cliente.

POST https://api.aproveicheckout.com.br/v1/cart/create-checkout

Autenticação: token Bearer com a ability checkout:create + header X-Store-Slug. Ver autenticação → Limite de 60 requisições/min — ver erros e limites.

Headers

Header Descrição
Authorization Obrigatório Bearer SEU_TOKEN
X-Store-Slug Obrigatório slug da loja
Content-Type Obrigatório application/json — sem ele a API retorna 415 UNSUPPORTED_MEDIA_TYPE
Idempotency-Key Obrigatório Chave única do checkout, para reenvios seguros

Body

O body aceita somente items[].variantId e items[].quantity (máximo de 50 itens, quantidade de 1 a 999 por item) — qualquer campo extra retorna 422 VALIDATION_ERROR. Use o variantId comprável retornado por Listar produtos ou Buscar produtos.

Request
{
  "items": [
    { "variantId": "101", "quantity": 1 }
  ]
}

Exemplo de Requisição

cURL
curl -X POST "https://api.aproveicheckout.com.br/v1/cart/create-checkout" \
  -H "Authorization: Bearer ${APROVEI_API_KEY}" \
  -H "X-Store-Slug: ${APROVEI_STORE_SLUG}" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: checkout-${UNIQUE_ID}" \
  -d '{
    "items": [
      { "variantId": "101", "quantity": 1 }
    ]
  }'

Resposta

Response 200
{
  "active": true,
  "skip_cart": false,
  "checkout_direct_url": "https://loja.dominio.com/checkout/token",
  "checkoutUrl": "https://loja.dominio.com/checkout/token"
}

Idempotência: a mesma Idempotency-Key com o mesmo payload retorna o mesmo checkout por 24 horas. A mesma chave com payload diferente retorna 409 IDEMPOTENCY_KEY_CONFLICT.

Sem cobrança automática: este endpoint cria somente o link/token de checkout. Pedido e pagamento só são criados quando o comprador acessa o checkout e conclui a compra.

Erros Específicos

Código HTTP Quando ocorre
IDEMPOTENCY_KEY_MISSING 400 Header Idempotency-Key ausente
IDEMPOTENCY_KEY_CONFLICT 409 Mesma chave com payload diferente
CHECKOUT_DOMAIN_NOT_CONFIGURED 422 Loja sem domínio ativo configurado para vendas (o domínio demo não é usado como fallback)
PRODUCT_NOT_FOUND 404 Variante inexistente, inativa ou com produto pai inativo
STOCK_UNAVAILABLE 400 Estoque insuficiente para um ou mais itens

Formato de erro e demais códigos na página de Erros e Limites.