Vendas (regime competência)
curl --request GET \
--url https://api.controleclinic.com.br/v1/financial/sales \
--header 'X-API-Key: <api-key>'const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.controleclinic.com.br/v1/financial/sales', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.controleclinic.com.br/v1/financial/sales"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": [
{
"id": "<string>",
"numero_venda": 123,
"data_competencia": "<string>",
"valor_bruto": 123,
"desconto": 123,
"valor_liquido": 123,
"forma_pagamento": "<string>",
"taxa_percentual": 123,
"bandeira": "<string>",
"parcelas": 123,
"profissional_venda_id": "<string>",
"conta_id": "<string>",
"centro_custo_id": "<string>",
"status": "<string>",
"recebimento_status": "<string>",
"cancelada": true,
"divida_em_aberto": 123,
"formas_pagamento": [
{
"forma": "<string>",
"valor": 123,
"parcelas": 123,
"taxa_percentual": 123,
"bandeira": "<string>",
"conta_id": "<string>"
}
],
"itens": [
{
"procedure_id": "<string>",
"procedimento": "<string>",
"categoria": "<string>",
"quantidade": 123,
"valor_cobrado": 123,
"desconto": 123,
"vendido": true,
"profissional_execucao_id": "<string>"
}
],
"patient_id": "<string>",
"paciente_nome": "<string>",
"paciente_cpf": "<string>",
"descricao": "<string>"
}
],
"count": 123,
"page": 123,
"limit": 123,
"regime": "competencia",
"periodo": {
"from": "<string>",
"to": "<string>"
}
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "Insufficient scope",
"code": "<string>"
}{
"error": "<string>"
}Financeiro
Vendas (regime competência)
Vendas com data de competência no período, paginadas, da mais recente para a mais antiga.
- Não existe campo
quitada.statuserecebimento_statussaem crus e podem discordar entre si e da dívida. “Quanto falta receber” édivida_em_aberto, que vemnullem venda cancelada. - Não existe taxa em R$. A taxa sai em % (na venda ou em cada perna); o valor já vem descontado em
valor_liquido. formas_pagamentoé uma foto da venda e não acompanha as baixas.- Profissionais saem só como id: o nome está em
/v1/scheduling/professionals. search(paciente, número da venda ou procedimento) e os dados do paciente exigemsensitive:read.- Só lançamentos com ao menos um item vendido, como a aba Vendas de
/incomes.
GET
/
v1
/
financial
/
sales
Vendas (regime competência)
curl --request GET \
--url https://api.controleclinic.com.br/v1/financial/sales \
--header 'X-API-Key: <api-key>'const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.controleclinic.com.br/v1/financial/sales', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.controleclinic.com.br/v1/financial/sales"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": [
{
"id": "<string>",
"numero_venda": 123,
"data_competencia": "<string>",
"valor_bruto": 123,
"desconto": 123,
"valor_liquido": 123,
"forma_pagamento": "<string>",
"taxa_percentual": 123,
"bandeira": "<string>",
"parcelas": 123,
"profissional_venda_id": "<string>",
"conta_id": "<string>",
"centro_custo_id": "<string>",
"status": "<string>",
"recebimento_status": "<string>",
"cancelada": true,
"divida_em_aberto": 123,
"formas_pagamento": [
{
"forma": "<string>",
"valor": 123,
"parcelas": 123,
"taxa_percentual": 123,
"bandeira": "<string>",
"conta_id": "<string>"
}
],
"itens": [
{
"procedure_id": "<string>",
"procedimento": "<string>",
"categoria": "<string>",
"quantidade": 123,
"valor_cobrado": 123,
"desconto": 123,
"vendido": true,
"profissional_execucao_id": "<string>"
}
],
"patient_id": "<string>",
"paciente_nome": "<string>",
"paciente_cpf": "<string>",
"descricao": "<string>"
}
],
"count": 123,
"page": 123,
"limit": 123,
"regime": "competencia",
"periodo": {
"from": "<string>",
"to": "<string>"
}
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "Insufficient scope",
"code": "<string>"
}{
"error": "<string>"
}Autorizações
Token de API no formato cc_live_<64 chars hex>. Obtido em Minha Clínica → Integrações.
Parâmetros de consulta
Data AAAA-MM-DD
Exemplo:
"2026-10-01"
Data AAAA-MM-DD
Exemplo:
"2026-10-01"
Opções disponíveis:
all, em_aberto, recebido Opções disponíveis:
true, false Só com o escopo sensitive:read
Maximum string length:
200Intervalo obrigatório:
1 <= x <= 1000000Intervalo obrigatório:
1 <= x <= 100