Certidão Negativa

Gestão de Certidões Negativas de Débito (CND) emitidas pela Alcance Contabilidade para seus clientes — abrangendo Receita Federal, FGTS, SEFAZ Salvador e SEFAZ Bahia. Os endpoints cobrem registro de emissões, consulta com filtros, analytics, monitoramento por categoria de pendência, download do PDF e envio por e-mail/WhatsApp.

Base path

/api/v1/certidao-negativa

Todos os endpoints exigem header Authorization: Bearer <API_KEY> e a API Key emitida pela WebApiAlcance precisa carregar os escopos abaixo.

Escopos necessários

EscopoEndpoints cobertos
certidao_negativa:readGET /, GET /{id}, GET /{id}/pdf, GET /stats, GET /monitoring, GET /monitoring/list
certidao_negativa:writePOST /, PUT /{id}, DELETE /{id}, POST /{id}/enviar-email/{email}, POST /{id}/enviar-whatsapp/{numero}

Endpoints

POST /certidao-negativa/ — Registrar emissão

Cria um novo registro de certidão. Aceita pdf_base64 opcional no payload — campo grande, mas necessário se você quiser baixar o PDF depois via /{id}/pdf.

Body (CertidaoNegativaCreate):

{
  "id_usuario": 12,
  "id_cliente": 487,
  "tipo": "RECEITA FEDERAL",
  "status": "Concluido",
  "observacao": "Emissão automática via rotina diária",
  "data_validade": "2026-08-14T00:00:00",
  "pdf_base64": "JVBERi0xLjcKJeLjz9MK...",
  "negativa": true,
  "motivo": null
}

Resposta 200 OK:

{
  "success": true,
  "message": "Certidão registrada com sucesso!",
  "data": { "id": 9821, "id_cliente": 487, "tipo": "RECEITA FEDERAL", "status": "Concluido" }
}

Escopo: certidao_negativa:write.

GET /certidao-negativa/stats — Analytics

Retorna estatísticas consolidadas (totais por tipo, status, taxa de sucesso, médias de validade). Útil para dashboards executivos.

Escopo: certidao_negativa:read.

GET /certidao-negativa/monitoring — Dados de monitoramento

Retorna contadores agregados das categorias de monitoramento (sem listar registros). Pareie com /monitoring/list quando precisar dos itens.

Escopo: certidao_negativa:read.

GET /certidao-negativa/monitoring/list — Listas por categoria

Retorna listas (não contadores) do monitoramento, segmentadas por categoria.

Query params:

ParamTipoDescrição
tipostring?Filtra por tipo (ex.: SEFAZ BAHIA, FGTS, RECEITA FEDERAL).
categoriastring?Uma de: sem_certidao, com_pendencia, exigibilidade_suspensa, total_sucesso, total_vencidas, total_falhas.
limitint?1–10000. Se omitido, retorna tudo (cuidado com volume).
offsetintDefault 0.

Exemplo: GET /certidao-negativa/monitoring/list?tipo=SEFAZ BAHIA&categoria=com_pendencia&limit=50.

Escopo: certidao_negativa:read.

GET /certidao-negativa/{certidao_id} — Detalhe por ID

Retorna CertidaoNegativaRead com pdf_base64 incluído. Use quando precisar do conteúdo binário em base64 (ex.: anexar a um e-mail externo).

Resposta 200 OK:

{
  "success": true,
  "message": "Certidão encontrada com sucesso!",
  "data": {
    "id": 9821,
    "id_usuario": 12,
    "id_cliente": 487,
    "tipo": "RECEITA FEDERAL",
    "status": "Concluido",
    "observacao": null,
    "data_hora_emissao": "2026-05-15T08:14:22",
    "data_validade": "2026-08-14T00:00:00",
    "pdf_base64": "JVBERi0xLjcK...",
    "negativa": true,
    "motivo": null
  }
}

Escopo: certidao_negativa:read.

GET /certidao-negativa/ — Listar com filtros

Lista paginada sem pdf_base64 (ver schema CertidaoNegativaListItem abaixo).

Query params:

ParamTipoDescrição
customer_idint?Filtra por id_cliente.
tipostring?Case-insensitive. Ex.: FGTS, RECEITA FEDERAL.
statusstring?Case-insensitive. Ex.: Concluido, Falha.
start_datedatetime?data_hora_emissao >= start_date.
end_datedatetime?data_hora_emissao <= end_date.
limitint?1–500. Se omitido, retorna todos que casarem.
offsetintDefault 0.

Exemplo: GET /certidao-negativa/?customer_id=487&tipo=FGTS&status=Concluido&start_date=2026-01-01&limit=50.

Escopo: certidao_negativa:read.

PUT /certidao-negativa/{certidao_id} — Atualizar

Atualiza campos mutáveis de uma certidão. Body (CertidaoNegativaUpdate):

{
  "observacao": "Reemitida após indisponibilidade do Portal Receita",
  "status": "Concluido",
  "pdf_base64": "JVBERi0xLjcK...",
  "motivo": null
}

Escopo: certidao_negativa:write.

DELETE /certidao-negativa/{certidao_id} — Deletar

Remove fisicamente o registro. Não exposto via MCP (operação destrutiva irreversível) — uso direto da API apenas.

Escopo: certidao_negativa:write.

GET /certidao-negativa/{certidao_id}/pdf — Download binário

Retorna application/pdf com header Content-Disposition: inline; filename=certidao_<id>.pdf. Forma recomendada para abrir o PDF no navegador ou anexar em pipelines.

Escopo: certidao_negativa:read.

POST /certidao-negativa/{certidao_id}/enviar-email/{email} — Enviar por e-mail

Envia o PDF da certidão como anexo via SMTP corporativo da Alcance. Se email for omitido, usa o e-mail cadastrado no cliente (customer.email).

Resposta 200 OK:

{
  "mensagem": "Certidão enviada com sucesso por e-mail.",
  "email_destino": "financeiro@empresa.com.br"
}

Escopo: certidao_negativa:write.

POST /certidao-negativa/{certidao_id}/enviar-whatsapp/{numero} — Enviar por WhatsApp

Envia o PDF via ZapContabil. Se numero for omitido, usa o celular do cliente.

Escopo: certidao_negativa:write.

Schema CertidaoNegativaListItem

Schema enxuto retornado em GET /certidao-negativa/. NÃO inclui pdf_base64 (campo Text enorme — excluído para evitar payloads gigantes).

CampoTipoDescrição
idintIdentificador único da certidão.
id_usuariointUsuário Alcance que registrou a emissão.
id_clienteintCliente vinculado (FK customers.id).
tipostringRECEITA FEDERAL, FGTS, SEFAZ BAHIA, SEFAZ SALVADOR.
statusstringConcluido, Falha, Em andamento.
observacaostring?Observação livre.
data_hora_emissaodatetimeQuando o registro foi criado/emitido.
data_validadedatetime?Validade da certidão (geralmente 90 ou 180 dias).
negativabool?true = sem pendências; false = com pendências.
motivostring?Motivo da pendência / falha, quando aplicável.

Categorias do monitoramento

Valores aceitos pelo query param categoria em /monitoring/list (e chaves retornadas em /monitoring):

CategoriaSignificado
sem_certidaoClientes que ainda não possuem certidão emitida no período.
com_pendenciaCertidões emitidas com pendências (negativa = false).
exigibilidade_suspensaPendências cuja exigibilidade está suspensa (parcelamento, liminar).
total_sucessoEmissões bem-sucedidas no período.
total_vencidasCertidões cujo data_validade já passou.
total_falhasTentativas de emissão que falharam (timeouts, instabilidade do portal).

Notas

PDF nunca volta na listagem

A listagem GET /certidao-negativa/ não retorna pdf_base64 por padrão — o campo é enorme e estourava payloads em consultas com muitos itens. Para obter o PDF de uma certidão específica, use GET /certidao-negativa/{id} (devolve pdf_base64 no JSON) ou GET /certidao-negativa/{id}/pdf (binário com Content-Disposition). A versão binária é preferida para download e visualização inline no navegador.

Filtros case-insensitive

tipo e status em GET / são case-insensitive — fgts, FGTS e Fgts retornam o mesmo conjunto.