integração sefsc <> SmartCityTec
Visão Geral do Fluxo
O processo de obtenção do documento segue as seguintes etapas
[Início]
│
├── 1. Recupera CPF do Solicitante (Contexto ou Env Var)
├── 2. Identifica tipo do contribuinte (CPF vs CNPJ pelo tamanho)
├── 3. Envia requisição POST para a API SEF-SC
├── 4. Valida a estrutura de retorno (ResultCode, Data)
├── 5. Mapeia o Tipo da Certidão (Status e Regras de Validade)
└── 6. Decodifica o PDF (Base64) e gera o Resultado
Configurações e Variáveis de Ambiente
- URL do Endpoint: Configurada via
SEF_SC_API_URL(padrão:https://sat.sef.sc.gov.br/api/cnd/Certidao/Gerar). - Solicitante Padrão:
CPFCNPJ_SOLICITANTE_PADRAO. Utilizado como *fallback* caso nenhum CPF do solicitante seja fornecido no contexto da requisição.
Estrutura de Comunicação da API
Requisição (POST)
O payload exige a identificação do contribuinte consultado e o CPF do solicitante.
// Identificacao.Type = "Cnpj" se len == 14, caso contrário "Cpf"
{
"Identificacao": {
"Type": "Cnpj",
"Value": "12075748000132"
},
"CpfSolicitante": {
"Type": "Cpf",
"Value": "00000000000"
}
}
Resposta de Sucesso (Exemplo)
{
"ResultCode": "OK",
"Data": {
"Numero": "250140126228731",
"Identificacao": {
"Type": "Cnpj",
"Value": "12075748000132"
},
"Nome": "CONSORCIO INTERFEDERATIVO SANTA CATARINA",
"Tipo": "Negativa",
"DataEmissao": "2025-04-22T15:47:40",
"DataValidade": "2025-10-19T15:47:40",
"Situacao": "Valida",
"OrigemDebitos": null,
"ArquivoCndPdf": {
"CND": "250140126228731",
"Nome": "CND_250140126228731.pdf",
"Dados": "<Conteudo do arquivo em base64>",
"ContentType": "application/pdf"
}
},
"Messages": null
}
Regras de Negócio e Processamento de Dados
Mapeamento de Status do Documento
A partir do campo "Tipo" retornado na resposta, define-se o status interno:
| Tipo Retornado (SEF-SC) | Status Interno | Tipo da Certidão | Observação / Mensagem |
Negativa |
APROVADO | NEGATIVA | Sem pendências. |
Positiva |
REPROVADO | POSITIVA | Apresenta pendências na SEF-SC. |
PositivaComEfeitoNegativa |
APROVADO | POSITIVA_NEGATIVA | Certidão positiva com efeito de negativa. |
| Qualquer outro |
PENDENTE | INDEFINIDO | Tipo de certidão não reconhecido. |
Tratamento de Datas
- Timezone: Se a string de data da API não contiver fuso horário explícito, é assumido o sufixo
-03:00(horário de Brasília). - Ajuste para Certidão Positiva: Caso a certidão seja classificada como
POSITIVA, a data de validade é ajustada para o final do mesmo dia da emissão (23:59:59.999999).