Manual do conector-cep-endereco

Identificação

ItemValor
Conectorconector-cep-endereco
Destino SISCconector__conector-cep-endereco
Catálogo modularsiscconectores/web-api/catalogo-conector-cep-endereco.json
Mensagem principalconector-cep-endereco.buscar
Formatoconectores/conector-cep-endereco/formatos/formato-conector-cep-endereco.json

Objetivo

O conector-cep-endereco recebe dados de endereço brasileiro e retorna o CEP mais provável. Ele foi criado para consumidores SISC que precisam transformar um endereço textual em um CEP, mantendo o padrão de comunicação por mensagem catalogada. O consumidor não chama a implementação interna do conector. O consumidor publica uma mensagem JSON com idmensagem conhecido, dados em payload.dados ou no campo dados da API externa, e aguarda a resposta registrada pelo SISC conforme o modo de uso disponível no ambiente.

O serviço externo usado é o ViaCEP público. A consulta é somente leitura, não grava informações no serviço externo, não altera dados cadastrais, não envia email, não cobra valores e não depende de credencial para a operação documentada.

Operações

OperaçãoidmensagemCampos principaisDescrição
buscar-cepconector-cep-endereco.buscarendereco ou uf + cidade + logradouroConsulta CEP provável para o endereço informado.
consultar-cepconector-cep-endereco.buscarMesmos campos da operação principalAlias compatível para consumidores que preferem o verbo consultar.

Payload de entrada

Os dados devem ser enviados em payload.dados quando a mensagem completa for montada, ou em dados quando o consumidor usa a API HTTP externa do SISC. Em ambos os casos, o conteúdo lógico é o mesmo.

CampoTipoObrigatórioDescrição
operacaostringnãoUse buscar-cep ou consultar-cep. Se ausente, o conector assume buscar-cep.
enderecostringalternativoEndereço em texto livre, preferencialmente no formato logradouro, cidade - UF.
ufstringalternativoSigla do estado com duas letras, por exemplo SP.
cidadestringalternativoNome do município.
logradourostringalternativoRua, avenida, praça ou outro logradouro.
bairrostringnãoCampo de apoio para consumidores; pode ser usado para conferência quando houver múltiplos candidatos.
numerostringnãoNúmero do imóvel. O ViaCEP por endereço normalmente não usa número, mas o consumidor pode manter o dado para auditoria.

Exemplo de payload simples

{
  "operacao": "buscar-cep",
  "endereco": "Praça da Sé, São Paulo - SP"
}

Exemplo de mensagem SISC completa

{
  "_protocolo": {
    "origem": "sistema__cliente-exemplo",
    "destino": "conector__conector-cep-endereco",
    "idmensagem": "conector-cep-endereco.buscar",
    "idempotencia": {
      "chave": "cep-praca-se-sp-001",
      "escopo": "conector-cep-endereco.buscar"
    }
  },
  "payload": {
    "dados": {
      "operacao": "buscar-cep",
      "endereco": "Praça da Sé, São Paulo - SP"
    }
  }
}

Exemplo de chamada de consumidor externo

O programa consumidor de exemplo recebe o endereço na linha de comando e usa siscconectores/cabsisc.h para carregar o token local em token-sisc/meu-login.txt. Como o arquivo de token pode guardar vários conectores, a linha usada por este conector deve seguir o formato conector-cep-endereco~TOKEN. A comunicação oficial é a requisição HTTP com JSON contendo idmensagem, origem, dados, modo de execução e idempotencia. O token deve ir no cabeçalho HTTP Authorization, nunca dentro de payload.dados.

php siscconectores/conector-cep-endereco-cliente.php "Praça da Sé, São Paulo - SP"

Saída esperada

A saída do conector é JSON. Em caso de sucesso, o campo cep apresenta o primeiro candidato retornado pelo ViaCEP. A lista completa de candidatos pode ser usada por consumidores que precisam validar bairro, logradouro ou cidade.

{
  "sucesso": true,
  "conector": "conector-cep-endereco",
  "operacao": "buscar-cep",
  "cep": "01001-000",
  "fonte": "viacep",
  "consulta": {
    "endereco": "Praça da Sé, São Paulo - SP",
    "uf": "SP",
    "cidade": "São Paulo",
    "logradouro": "Praça da Sé"
  },
  "candidatos": [
    {
      "cep": "01001-000",
      "logradouro": "Praça da Sé",
      "bairro": "Sé",
      "localidade": "São Paulo",
      "uf": "SP"
    }
  ]
}

Programa de exemplo

O pacote traz dois exemplos. O primeiro é siscconectores/conector-cep-endereco-uso.php, que mostra como montar o payload e a mensagem SISC. O segundo é siscconectores/conector-cep-endereco-cliente.php, um consumidor portátil que pode ser copiado para a máquina do cliente e executar chamada HTTP contra a API pública do SISC.

php siscconectores/conector-cep-endereco-uso.php
php siscconectores/conector-cep-endereco-uso.php --self-test
php siscconectores/conector-cep-endereco-cliente.php --self-test

Credenciais

Nenhuma credencial externa é necessária para o ViaCEP público. O consumidor precisa apenas de credencial de acesso ao SISC, fornecida pelo operador do ambiente. Essa credencial é usada para autenticar o transporte HTTP e não pertence ao payload do conector.

Não envie senha, token, cookie, certificado privado ou qualquer segredo em payload.dados. Caso uma implantação futura use outro provedor de CEP com credenciais, o operador deve configurar o segredo no ambiente do SISC e o pacote deve conter apenas arquivo .sample.json de documentação.

Erros comuns

ErroCausa provávelAção recomendada
operacao invalidaO campo operacao não é aceito.Use buscar-cep ou consultar-cep.
informe endereco...O payload não trouxe endereço suficiente.Informe endereco no formato recomendado ou envie uf, cidade e logradouro.
falha ao consultar ViaCEPIndisponibilidade de rede, timeout ou bloqueio temporário.Tente novamente com idempotência adequada e trate indisponibilidade no consumidor.
cep nullNenhum candidato retornado.Revise grafia, acentos, cidade, UF e logradouro.

Limites

ItemLimite ou comportamento
TimeoutA chamada externa usa timeout curto para evitar travamento de execução.
PrecisãoEndereços genéricos podem retornar múltiplos candidatos. O consumidor deve conferir bairro e cidade.
Rate limitO ViaCEP é público; consumidores devem evitar volume abusivo e aplicar cache quando necessário.
Dados pessoaisEvite enviar complemento, nome de morador ou dados sensíveis. Para CEP, logradouro/cidade/UF costumam ser suficientes.

Segurança de uso

O conector preserva a separação entre transporte, autenticação e dados de negócio. O token do SISC autentica a requisição HTTP e deve ser tratado como segredo pelo consumidor. O campo payload.dados deve conter somente dados necessários à busca de CEP. A idempotencia é obrigatória para reduzir duplicidade de chamadas e facilitar auditoria. Consumidores devem gerar chaves idempotentes por tentativa lógica, não por repetição cega.

Boas práticas para consumidores