Como consumir as rotas disponibilizadas na API PÚBLICA
API Pública: integração simples e segura com nossos serviços
Entenda por que disponibilizamos uma API pública:
Com o objetivo de facilitar integrações e ampliar as possibilidades de uso da plataforma, disponibilizamos uma API pública que permite que desenvolvedores e sistemas externos acessem nossos serviços de forma padronizada e segura.
O que é uma API Pública:
Uma API pública é uma interface que permite que aplicações externas se comuniquem com um sistema de maneira estruturada. Na prática, ela possibilita que outras plataformas, softwares ou automações utilizem funcionalidades do nosso sistema sem precisar acessar diretamente a aplicação principal.
A disponibilização de uma API pública tem como principal objetivo permitir integrações mais flexíveis. Empresas e desenvolvedores podem automatizar processos, conectar diferentes sistemas e criar novas soluções utilizando os dados e recursos disponibilizados pela plataforma.
Além disso, a API pública também facilita a escalabilidade das integrações. Em vez de processos manuais ou importações de dados, sistemas podem se comunicar automaticamente, garantindo mais eficiência, consistência e rapidez nas operações.
Como começar a utilizar a API pública:
Para acessar as rotas da API pública, é necessário possuir uma API Key, que funciona como uma chave de autenticação para identificar e autorizar as requisições feitas ao sistema.
O processo para gerar uma API Key é simples:
- Acesse o menu Configurações da plataforma.

- Entre na seção API Keys.

- Clique na opção Chave de API habilitada

- Após a criação, copie a Chave de API gerada.
Documentação da API
Para facilitar o uso da API pública, disponibilizamos a documentação por meio do Swagger. O Swagger permite visualizar todas as rotas disponíveis, entender quais parâmetros são necessários e até mesmo testar requisições diretamente pela interface.
Com ele, desenvolvedores conseguem explorar a API de forma mais prática, verificando exemplos de requisição, formatos de resposta e detalhes de cada endpoint.
A documentação completa da API pode ser acessada no link abaixo:
https://public-api.gdash.io/swagger
Após gerar sua API Key, basta acessar a documentação no Swagger, inserir a chave nas requisições e começar a utilizar as rotas da API pública para integrar sua aplicação.

Convenções gerais
Conceito | Detalhe |
|---|---|
Base URL | |
Autenticação | Query param |
Formato de resposta |
|
Datas | ISO 8601 (ex.: |
Paginação | Por cursor (somente em |
Como funciona a paginação por cursor
O cursor é a data de criação (created_at) do último item que você recebeu. Para buscar a próxima página, envie esse valor no parâmetro cursor. Use também limit para definir o tamanho da página.
Na rota de energy-billing, a resposta já devolve o próximo cursor em nextCursor (quando null, acabaram os resultados).
CRM
GET /crm/task — Tarefas do CRM
Retorna as tarefas (to-dos) registradas no CRM da organização.
Campo | Tipo | Descrição |
|---|---|---|
| string | Identificador da tarefa |
| string | Organização dona da tarefa |
| boolean | Se a tarefa já foi concluída |
| string | Título da tarefa |
| string ou null | Descrição/detalhe |
| date | Data de vencimento |
| date ou null | Quando foi concluída (null se aberta) |
| string | Prioridade |
| date | Criação / última atualização |
GET /crm/people — Pessoas do CRM
Retorna todas as pessoas (contatos) cadastradas no CRM.
Campo | Tipo | Descrição |
|---|---|---|
| string | Identificador da pessoa |
| string | Organização |
| string | Nome completo |
| string / string ou null | Primeiro nome / sobrenome |
| string | |
| string | Telefone |
| string | CPF |
|
| Empresa vinculada |
| string | ID em sistema externo (integrações) |
| date | Criação / atualização |
POST /crm/people/create — Criar pessoa
Cria um novo contato. Body:
Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| string | sim | E-mail da pessoa |
GET /crm/deal — Negociações (deals)
Retorna as oportunidades/negociações do CRM.
Campo | Tipo | Descrição |
|---|---|---|
| string | Identificador do deal |
| string | Nome da negociação |
| string | Organização |
| number | Valor da negociação |
| date | Início |
| date ou null | Fim (null se em aberto) |
| date | Previsão de fechamento |
| string |
|
|
| Funil onde o deal está |
|
| Etapa/fase dentro do funil |
| string ou null | Motivo / descrição da perda |
| string ou null | ID em sistema externo |
| date | Criação / atualização |
POST /crm/deal/create — Criar negociação
Body:
Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| string | sim | Nome do deal |
| number | sim | Valor |
|
| sim | Responsáveis ( |
| date | sim | Data de início |
| date ou null | não | Data de fim |
| date | sim | Previsão de fechamento |
| string | sim | Funil |
| string | sim | Etapa/fase |
| string[] | sim | IDs de produtos vinculados |
| string[] | sim | IDs de empresas vinculadas |
| string[] | sim | IDs de pessoas vinculadas |
| string | sim |
|
| string[] | sim | IDs de tags |
|
| sim | Com quem o deal é compartilhado |
| object[] | não | Campos personalizados |
GET /crm/company — Empresas do CRM
Retorna as empresas cadastradas.
Campo | Tipo | Descrição |
|---|---|---|
| string | Identificador |
| string | Organização |
| string ou null | ID externo |
| string | Nome fantasia |
| string ou null | Razão social |
| string ou null | CNPJ |
| string | |
| string | Telefone fixo / celular |
| string | Site |
| string ou null | Endereço |
| string ou null | Setor/segmento |
| date | Criação / atualização |
POST /crm/company/create — Criar empresa
Body:
Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| string | sim | E-mail da empresa |
Solar
GET /solar/plants — Usinas
Retorna as usinas de geração da organização. Cada usina pode trazer suas instalações (unidades consumidoras) em installations.
Campo | Tipo | Descrição |
|---|---|---|
| string | Identificador da usina |
| string | Organização |
| string | Nome da usina |
| number | Potência instalada (kWp) |
| boolean | Se há alerta ativo |
| number ou null | Azimute dos módulos |
| number ou null | Inclinação dos módulos |
| number ou null | Investimento (CAPEX) |
| string | Credencial/integração do inversor |
| string | Fabricante do inversor |
| boolean | Se é plano gratuito |
| string | Moeda |
| string | Status operacional |
| number ou null | Fuso horário |
| date | Criação / atualização |
| UnidadeConsumidora[] | Unidades consumidoras vinculadas (ver tabela abaixo) |
Objeto installations[] (unidade consumidora):
Campo | Tipo | Descrição |
|---|---|---|
| string | Identificador da instalação |
| string | Organização |
| string | Número da instalação |
| string ou null | Novo número (em troca de titularidade) |
| string | Nome da instalação |
| boolean | Se é unidade geradora |
| object[] | Fontes de crédito de energia |
| number | (depreciado — use |
| number | Tipo da unidade |
| number | Modalidade tarifária |
| number ou null | Percentual de desconto |
GET /solar/customers — Clientes
Retorna todos os clientes da organização. Também traz plants (IDs das usinas) e installations.
Campo | Tipo | Descrição |
|---|---|---|
| string | Identificador do cliente |
| string | Organização |
| string | Nome |
| string ou null | Documento |
| string ou null | Contato |
| string ou null | Número do cliente |
| string | Concessionária de energia |
| string[] | IDs das usinas vinculadas |
| UnidadeConsumidora[] | Mesma estrutura de |
| date | Criação / atualização |
GET /solar/customers/search — Buscar clientes com filtros
Mesmo retorno de /solar/customers, mas permite filtrar. Query params (todos opcionais, combináveis):
Param | Descrição |
|---|---|
| Busca parcial por CPF (case-insensitive) |
| Busca parcial por CNPJ |
| Busca parcial por nome |
| Busca parcial por e-mail |
| Match exato da concessionária (ex.: |
| Match exato do número do cliente |
POST /solar/customers/create — Criar cliente
Body:
Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| string | sim | Usina associada ao cliente |
| boolean | sim | Habilita envio de e-mails |
| boolean | sim | Habilita envio de WhatsApp |
| string | não | Nome |
| string | não | E-mail principal |
| string | não | Telefone |
| string | não | Documento |
| string | não | Número do cliente fornecido pela concessionária |
| string | não | Concessionária (ex.: |
| string[] | não | E-mails secundários |
| string | não | Senha para desbloquear a fatura no portal da concessionária |
| string[] | não | IDs de produtos |
| object[] | não | Campos personalizados |
|
| não | Responsáveis ( |
|
| não | Compartilhamento |
GET /solar/payments/charges — Cobranças
Retorna as cobranças/pagamentos da organização. Suporta filtros e paginação por cursor.
Query params:
Param | Tipo | Descrição |
|---|---|---|
| enum |
|
| ISO 8601 | Vencimento (exato ou intervalo) |
| ISO 8601 | Pagamento (exato ou intervalo) |
| ISO 8601 | Criação (exato ou intervalo) |
| ISO 8601 | Mês de referência (ou |
| number | Valor (exato ou intervalo) |
| string | Número da unidade consumidora |
| string | Concessionária |
| string | Cidade |
| ISO 8601 | Cursor de paginação ( |
| number | Tamanho da página (default 10) |
Campos da resposta:
Campo | Tipo | Descrição |
|---|---|---|
| string | Identificador da cobrança |
| string | Organização |
| number | Número sequencial da cobrança |
| object | Dados do cliente (ver abaixo) |
| string[] | Unidades consumidoras cobradas |
| number | Valor da cobrança |
| string | Moeda |
| string | Mês de referência |
| string | Vencimento |
| string ou null | Data de pagamento |
| string | Status da cobrança (ver enum acima) |
| string | Método de pagamento (boleto, pix, cartão…) |
| string | Referência do documento |
| string | URL do documento/fatura |
| string ou null | Linha digitável do boleto |
| string ou null | Descrição |
| string | ID da transação |
| object | Dados do provedor de pagamento ( |
| string | Usina relacionada |
|
| Responsáveis |
| number ou null | Percentual de desconto |
| boolean | Se a cobrança deve ser unificada |
| date | Criação / atualização |
Objeto customer: id, name, document, email, phone, number, street, district, city, state.
GET /solar/payments/charges/{charge_id} — Detalhe de uma cobrança
Retorna os dados de uma cobrança específica (mesma estrutura acima), pelo charge_id.
GET /solar/energy-billing — Faturas de energia
Retorna as faturas/registros de faturamento de energia. Paginação por cursor — a resposta inclui nextCursor.
Query params: cursor (ISO 8601), limit (default 10, máx. 100).
Campos principais da resposta (data[]):
Campo | Tipo | Descrição |
|---|---|---|
| string | Identificador da fatura |
| string | Organização |
| string | Número da instalação |
| string | Número do cliente |
| string | Nome da instalação |
| string | Documento do titular |
| string | Mês de referência |
| string | Status da fatura |
| string | Concessionária |
| boolean | Se é unidade geradora |
| string | Mensagem de erro na leitura (se houver) |
| ISO 8601 | Data de emissão |
| ISO 8601 | Vencimento |
| number | Valor total da conta |
| number | Contribuição de iluminação pública (CIP/COSIP) |
| number | Outros valores |
| ISO 8601 | Leitura atual / anterior / próxima |
| string[] | IDs de clientes vinculados |
| number | Custo de disponibilidade |
| number | Tipo de instalação |
| boolean | Se recebe créditos separados |
| number | Economia gerada |
| object | Impostos (ICMS, PIS, COFINS…) |
| EnergyObject | Postos tarifários: fora ponta / ponta / reservado (ver abaixo) |
| string | Descrição dos créditos do mês |
| string | Linha digitável |
| ISO 8601 | Quando foi importada |
| string | Quem criou |
| ISO 8601 | Criação / atualização |
Objeto hfp / hp / hr (EnergyObject) — detalhamento por posto tarifário:
Campo | Descrição |
|---|---|
| Consumo medido / regulado / contratado (kWh) |
| Consumo compensado (total / GD1 / GD2) |
| Tarifa (com e sem bandeiras) |
| Tarifa de compensação (com e sem bandeiras) |
| Tarifas TUSD e TE |
| Tarifas de compensação GD1 / GD2 |
| Energia injetada (medida / regulada / faturada) |
| Tarifas de injeção TUSD / TE |
| Valores totais consumido / compensado / impostos |
| Saldo / excedente de créditos |
Postos tarifários: HFP = horário fora de ponta, HP = horário de ponta, HR = horário reservado. Em instalações convencionais, normalmente só o
hfpé preenchido.
Ticket
GET /ticket — Chamados
Retorna os tickets/chamados (ordens de serviço) da organização.
Campo | Tipo | Descrição |
|---|---|---|
| string | Identificador do ticket |
| string | Organização |
| boolean | Se está concluído |
| string ou null | Título |
| string | Descrição do chamado |
| string ou null | Descrição da conclusão |
| string ou null | Prioridade |
| date | Data de abertura |
| date | Data de execução |
| date ou null | Data de encerramento |
| date | Criação / atualização |
Exemplo em TypeScript
Requisição de cobranças com paginação por cursor:
const API_KEY = 'SUA_API_KEY';
const BASE_URL = 'https://public-api.gdash.io/api/v1/solar/payments/charges';
async function getCharges() {
const cursor = '2026-01-01T00:00:00Z';
const limit = 10;
const response = await fetch(
`${BASE_URL}?apikey=${API_KEY}&cursor=${encodeURIComponent(cursor)}&limit=${limit}`,
{
method: 'GET',
headers: { 'Content-Type': 'application/json' },
},
);
const { ok, data } = await response.json();
console.log(ok, data);
// Próxima página: use o created_at do último item como novo cursor
if (data.length === limit) {
const nextCursor = data[data.length - 1].created_at;
// chamar novamente com cursor = nextCursor
}
}
getCharges();
Atualizado em: 02/07/2026
Obrigado!
