Vendas, catálogo e empresas (API)
Lançar e consultar vendas com idempotência de verdade, ler o catálogo e cadastrar empresas.
Lançar uma venda
curl -X POST https://www.scalacrm.com/api/v1/sales \
-H "Authorization: Bearer sk_live_…" \
-H "Content-Type: application/json" \
-d '{
"contact_id": "3f9a…",
"external_id": "planilha-linha-482",
"items": [
{ "description": "Plano Anual", "quantity": 1, "unit_price_cents": 149900 }
],
"move_to_stage_id": "4d5c…"
}'
{ "ok": true, "sale_id": "aa11…", "duplicated": false, "stage_name": "Venda" }
Campos: contact_id ou phone, items (até 50, com product_id opcional), discount_cents, sold_at, notes, move_to_stage_id.
external_idé a idempotência que importa aqui — e não o cabeçalhoIdempotency-Key. A diferença: o cabeçalho vale 24h e cobre o retry imediato; oexternal_idvale para sempre, porque venda concluída dispara conversão para Meta e Google. Duplicar envenena a otimização das suas campanhas com receita que não existiu.Use o identificador do seu sistema: a linha da planilha, o número do pedido, o id do seu ERP. Reenvio devolve
duplicated: truee a venda original — retry seguro.
Se o move_to_stage_id falhar (etapa apagada, por exemplo), a venda não é desfeita: você recebe 200 com stage_warning. O lançamento é o fato principal; só o funil ficou pendente.
Consultar vendas
curl "https://www.scalacrm.com/api/v1/sales?status=completed&sold_after=2026-08-01T00:00:00Z" \
-H "Authorization: Bearer sk_live_…"
Filtros: status, contact_id, external_id, sold_after.
Buscar por
external_idé o jeito de perguntar "eu já lancei esta linha?" antes de tentar de novo.
Catálogo
curl https://www.scalacrm.com/api/v1/products \
-H "Authorization: Bearer sk_live_…"
Traz nome, preço, tipo, modo de preço (fixo, gratuito, sob consulta), custo, formas de pagamento e promoção. Só os ativos por padrão — item desativado não deve ser cotado. Use include_inactive=true se precisar do histórico.
Empresas
# buscar por parte do nome
curl "https://www.scalacrm.com/api/v1/companies?name=acme" \
-H "Authorization: Bearer sk_live_…"
# cadastrar
curl -X POST https://www.scalacrm.com/api/v1/companies \
-H "Authorization: Bearer sk_live_…" \
-H "Content-Type: application/json" \
-d '{ "name": "Acme Ltda", "email": "contato@acme.com" }'
Para vincular um contato à empresa, use o PATCH de contatos com company_id. Venda e tarefa herdam a empresa do contato automaticamente.
