Objetivo
Permite ao associado consultar informações referentes a Registros de Débitos (comprador/avalista), Títulos Protestados, Consultas Anteriores (SCPC), Central de Crédito, Devoluções informadas pelo CCF – Cadastro de Cheques sem Fundos e pelos Associados, Cheques Sustados, Cheques Sustados pelo motivo 21, Histórico do Cheque e da Conta Corrente consultada, Consultas Anteriores (SCPC | Cheque), Nome e Endereço da Agência Bancária, Síntese Cadastral e Confirmação de Telefone.
Registros
‘CSR60‘ – Solicitação de Consulta: permite solicitar à ACSP as consultas SCPC + SCPC | Cheque ou SCPC + SCPC | Cheque + SCPC | Score fornecendo os parâmetros necessários.
‘CSR61‘ – Resposta da Consulta: será transmitido pela ACSP, contendo as informações correspondentes aos parâmetros fornecidos, podendo ser sintética ou analítica.
Procedimentos
- Transmitir à ACSP o registro de solicitação de consulta fornecendo os parâmetros necessários. Após a validação das informações, será transmitido pela ACSP registro de resposta contendo no campo Código de Retorno o Resultado da Transmissão, conforme segue:
“0″ – Consulta Concluída.
“1″ – Indica que existem mais registros a serem Transmitidos.
“9″ – Consulta Não Efetuada.
Para acesso via Renpac/Socket: Quando Tipo de Transmissão da Resposta for “C” (Conversacional), se o código de retorno for “1″, enviar a função <enter> para receber o próximo registro. Quando Tipo de Transmissão da Resposta for “T” (Transacional), será Transmissão Unica, com o envio de todos os registros.
Configurações
Existem poucos arquivos de configurações para o Acesso, citados abaixo com suas anotações.
Propriedades para o Acesso Seguro (HTTPS)
‘https.properties‘ – Arquivos de propriedades do certificado e conexão host-to-host usando HTTPS com o SPC
Devido ao SPC usar protocolos diferentes para Homologação e Produção, a variável de ambiente ‘spc.accessmode‘ para a JVM deve ser configurada; os possíveis valores são ‘http‘ ou ‘https' – a ‘não informação‘ dessa variável assume protocolo ‘https‘, portanto, acesso à Produção.
# Arquivo de properties HTTPS para o SCPC/SP - CSR60 # $Revision: 1.2 $ # $Date: 2008-11-19 19:39:11 $ # Informações de autenticacao e certificados do spc user.url=bvsntt.bvsnet.com.br user.root=/cgi-bin/db2www/netpo028.mbr/string user.jks=1B8ebFGol4yeii/2BYzFxU2nTEUJMwylig==S+VCf4zgqg== # workspace tools user.cert=/home/jboss/intellector-files/acsp.jk
- http.properties‘ – Arquivos de Propriedades para Conexão host-to-host usando HTTP com o SPC.
# Arquivo de properties HTTPS para o SCPC/SP - CSR60 # $Revision: 1.2 $ # $Date: 2008-11-19 19:39:11 $ # Informações de autenticacao e certificados do spc user.url=bvsntt.bvsnet.com.br user.root=/cgi-bin/db2www/netpo028.mbr/string
As configurações acima são para o ambiente de testes; para produção, esses dados DEVEM ser alterados. O timeout de retrying do WSDL ao SPC é de 180 segundos!
Layout para o Acesso
- ‘layout_CSR60v8.xml‘ – neste arquivo, são apresentados dados fixos, que provavelmente não sofrerão alterações; caso haja, a codificação do acesso também deverá ser alterada; basicamente, são dados transacionais.
Propriedades Configuráveis do Acesso As propriedades abaixo podem sofrer alterações, e essas podem ser feitas pelo site do ‘Intellector-NG‘ (veja aqui); Atenção no preenchimento dessas informações, elas definem Acesso ao Conteúdo(informações) e, não de conexão ao host do SPC. <?xml version="1.0" encoding="ISO-8859-1"?> <!-- arquivo layout_CSR6v8.xml --> <!-- <name> contem o conteudo do campo do layout; pode ser branco --> <!-- <size> representa o tamanho do campo do layout; se o conteudo --> <!-- for menor que size, entao ele serah completado por tipo --> <!-- <type> representa o tipo do campo do layout S=brancos; N=0 --> <spc> <field> <!-- Transacao --> <name>CSR60</name> <size>8</size> <type>S</type> </field> <field> <!-- Versao --> <name>04</name> <size>2</size> <type>S</type> </field> <field> <!-- Reservado - Uso do solicitante --> <name>Tools</name> <size>10</size> <type>S</type> </field> <field> <!-- Reservado ACSP - Uso da ACSP --> <name> </name> <size>20</size> <type>S</type> </field> </spc>
Propriedades Configuráveis do Acesso
As propriedades abaixo podem sofrer alterações, e essas podem ser feitas pelo site do ‘Intellector‘ ; muita atenção no preenchimento dessas informações, pois elas definem o acesso ao conteúdo (informações) e, não de conexão ao host do SPC.
Baixe aqui o layout do SCPC Integrado CSR60. # Arquivo de properties para o spc PF # $Revision: 1.2 $ # # type S=string, N=numeric # # LOGIN - codigo de servico spc.login=00000045 spc.login_size=8 spc.login_type=N # SENHA - senha de acesso spc.password=TOO123 spc.pass_size=8 spc.pass_type=S # Tipos da Consultas # pode ser alterado os tipos de consultas, conforme layout # "CIN"=(SCPC + Cheque); # "CIN06"=(SCPC + Cheque + Score 06 meses) # "CIN57"=(SCPC + Cheque + Score Cheque) # "CIN18"=(SCPC + Cheque + Score 18 meses) spc.tipo_consulta=CIN spc.tcons_size=8 spc.tcons_type=S # Localidade de Origem # Codigo da cidade de origem da consulta para fins de # repasse as entidades de outros municipios # Tabela de codigos serah fornecida pela ACSP spc.localidade= spc.local_size=4 spc.local_type=S
Baixe aqui o layout do SCPC Integrado CSR60.
Preenchimento da HashMap de Entrada
Método de Acesso no XML
Esse será o método usado pelo Reflection da Política.
<!-- metodo de acesso para ser carregado no acesso --> <code name="br.com.tools.acessos.spc.Spc"/>
Sufixo do Acesso
‘Sufixo para as Variáveis‘ internas da política: Toda vez que você acessar um item de registro, ele só poderá ser acessado acrescentado esse Sufixo, e.g., ‘T111_NOMEspc‘. Isso diferencia os vários acessos disponíveis nas políticas. Será usada apenas pelo Compilador e pela política, mas deve ser informado na construção do acesso (veja Intellector API).
<!-- esse deverah ser sufixo para ser acrescentado ao nome --> <!-- vindo da politica, entao irei buscar na hash da politica --> <!-- hash.getKey(cpf_spc); um de/para para os elementos --> <nome_acesso>spc</nome_acesso>
Dados de Entrada do Acesso
- Para o preenchimento da hashMap de entrada, é imprescindivel entender o layout CSR60 e, devem conter as seguintes chaves de entrada (UPPERCASE); cada campo contém os seguintes dados, sendo eles validados pelo Compilador:
- ‘description‘ – Propriedade da tag “field”, contem a descrição do campo
- ‘type‘ – Propriedade da tag “field”, define o tipo de dado Pure Java, como String, Integer, Double, Date e Boolean.
- ‘format‘ – Propriedade da tag “field”, contem o formato do dado; atualmente, só os dados de datas tem esse campo preenchido.
- ‘field‘ – Tag relativa ao nome do campo, escrito em maiúsculas (não necessariamente), como por ex. ‘TPRESPOSTA‘ .
<!-- contem os dados necessarios para entrada no SPC/CSR61 --> <entrada> <!-- Tipo de Resposta: "1" - Sintética; "2" - Analitica --> <field description="Tipo de Resposta: 1=Sintética; 2=Analitica" type="String" format="">TPRESPOSTA</field> <!-- posso testar pelo valor obrigatorio dentro de cada --> <!-- acesso, ele dever ser "CPF" --> <field description="CPF para consulta" type="String" format="">CPF</field> <field description="Nome para consulta" type="String" format="">NOME</field> <!-- Data de nascimento; deverah vir DDMMAAAA --> <field description="Data de nascimento; deverá ser DDMMAAAA" type="Date" format="ddmmyyyy">DTNASC</field> <!-- Tipo de credito; "CH"=cheque,... --> <field description="Tipo de credito; CH=cheque; CP=Credito Pessoal,..." type="String" format="">TIPOCREDITO</field> <!-- valor do credito com 2 casas decimais (00000.00) --> <field description="Valor do crédito com 2 casas decimais (00000.00)" type="Double" format="">VLRCREDITO</field> <field description="Endereço" type="String" format="">ENDERECO</field> <!-- data do cheque; DDMMAAAA --> <field description="Data do cheque; DDMMAAAA" type="Date" format="ddmmyyyy">DTCHEQUE</field> <!-- quantidade de dias do cheque --> <field description="Quantidade de dias do cheque" type="Integer" format="">QTDDIAS</field> <!-- identificador do request (origem) --> <field description="Código da cidade de origem" type="String" format="">ORIGEM</field> <!-- "C"= CMC7; qualquer outra coisa eh cheque;simplesmente pego o CMC7 --> <field description="C= CMC7; qualquer outra coisa é cheque" type="String" format="">CMC7</field> <!-- TRATAREMOS AS INFOS DO CHEQUE SEPARADAMENTE --> <!-- numero do banco --> <field description="Número do banco" type="Integer" format="">BANCO</field> <!-- numero da agencia --> <field description="Número da agência" type="Integer" format="">AGENCIA</field> <!-- numero da conta corrente --> <field description="Número da conta corrente" type="Integer" format="">CC</field> <!-- digito da conta corrente --> <field description="Dígito da conta corrente" type="Integer" format="">DIGITOCC</field> <!-- numero do cheque --> <field description="Número do cheque" type="Integer" format="">NRCHEQUE</field> <!-- digito do cheque --> <field description="Dígito do cheque" type="Integer" format="">DIGITOCHQ</field> <!-- FIM DADOS DO CHEQUE --> <!-- DADOS COMUNS NO ENVIO --> <!-- quantidade de cheques entre 01 e 24 --> <field description="Quantidade de cheques entre 01 e 24" type="Integer" format="">QTDCHEQUES</field> <!-- valor do cheque, nao dos cheques - decimal (000000.00) --> <field description="Valor do cheque, nao dos cheques - decimal (000000.00)" type="Double" format="">VLRCHEQUE</field> <!-- CEP de origem da consulta do cheque; formato NNNNNCCC --> <field description="CEP de origem da consulta do cheque; formato NNNNNCCC" type="String" format="">CEPORIGEM</field> <!-- numero do DDD --> <field description="Número do DDD" type="Integer" format="">DDD</field> <!-- numero do telefone --> <field description="Número do telefone" type="Integer" format="">TELEFONE</field> <!-- origem das informacoes; "C" - quando for CMC7 --> <field description="Origem das informacoes; 'C'=CMC7" type="String" format="">ORIGEM</field> <!-- codigo do facilitador --> <field description="Código do facilitador" type="String" format="">FACILITADOR</field>
Resposta da Consulta
Todos os Registros contém seus respectivos espaços, se houverem; não existe “trim()” nos blocos lidos.
Podem haver Registros tratados por Exceptions de InfraEstrutura.
DEBUG [main] (2008-08-04 14:19:04,819) - >> tipo999() DEBUG [main] (2008-08-04 14:19:04,819) - >> Erro 999: TRATADO POR EXCECAO DE INFRAESTRUTURA << DEBUG [main] (2008-08-04 14:19:04,819) - << tipo999() INFO [main] (2008-08-04 14:19:04,819) - retCode[0]: Consulta Concluida ERROR [main] (2008-08-04 14:19:04,820) - java.lang.Exception: 999* DATA DO CHEQUE INVALIDA at br.com.tools.acessos.spc.util.SpcUtil.builderHashOut(SpcUtil.java:113) at br.com.tools.acessos.spc.Spc.execute(Spc.java:60) at br.com.tools.acessos.spc.testes.TesteSpc.process(TesteSpc.java:89) at br.com.tools.acessos.spc.testes.TesteSpc.execute(TesteSpc.java:47) at com.toolssoftware.framework.app.MainApp.run(MainApp.java:377) at br.com.tools.acessos.spc.testes.TesteSpc.main(TesteSpc.java:38
Tipo 110 (SCPC)
- Indica que não existem informações para os Documentos Solicitados.
- ‘Erro 110‘: TRATADO POR EXCEÇÃO DE INFRAESTRUTURA.
Tipo 210
Nada Consta para os Documentos Solicitados.
- ‘Erro 210:‘ TRATADO POR EXCEÇÃO DE INFRAESTRUTURA.
Tipo 999
Mensagem de Erro.
- Erro 999: TRATADO POR EXCEÇÃO DE INFRAESTRUTURA.
Considerações
Nos casos em que o Documento Consultado possuir mais de um Nome Cadastrado no Sistema, será transmitido um Registro do ‘Tipo 112‘ (SCPC) e ‘Tipo 241‘ (Cheque), correspondente a cada Nome.
Dados de Saída dos Acessos
A HasMap de saída dos acessos, seguem o mesmo princípio da entrada, exceto pelo fato de que os dados de determinados Registros, podem se repetir, nesse caso, há a presença de um ‘contador‘ para um eventual looping de tratamento pelas aplicações clientes. Cada campo contém os seguintes dados, sendo eles validados pelo Compilador:
‘description‘ – Propriedade da tag “register”, contém a descrição do campo.
‘type‘ – Propriedade da tag “register”, define o tipo de dado Pure Java, como String, Integer, Double, Date e Boolean.
‘format‘ – Propriedade da tag “register”, contém o formato do dado; atualmente, só os dados de datas tem esse campo preenchido.
‘register‘ – Tag relativa ao nome do campo, escrito em maiúsculas (não necessariamente), como por ex. ‘T111_NOME‘.
Abaixo o XML de saída com o ‘contador‘:
Exemplo 'com‘ contador, retornado pelo SPC: ‘counter=T125_NUMCONSULTAS‘. Indica a quantidade de registros(se existir).
counter="T125_NUMCONSULTAS" > <register description="Tipo do Crédito" type="String" format="">T125_TPCREDITO_</register> <register description="Data do Crédito" type="Date" format="ddmmyyyy">T125_DTCREDITO_</register> <register description="Moeda" type="String" format="">T125_MOEDA_</register> <register description="Valor" type="Double" format="">T125_VALOR_</register> <register description="Informante" type="String" format="">T125_INFORMANTE_</register>
Exemplo ‘sem‘ contador retornado pelo SPC: ‘counter="" ' . Indica somente um registro (se existir).
<saida id="T122" counter="" > <register description="Conjugue" type="String" format="">T122_CONJUGUE</register> <register description="Naturalidade" type="String" format="">T122_NATURALIDADE</register> <register description="UF" type="String" format="">T122_UF</register> </saida>
Registros Disponíveis
‘Tipo 111‘ (SCPC) – Informa quantidade de Nomes Foneticamente Iguais ao fornecido. Se não existir nomes iguais, esse tipo não será enviado.
‘Tipo 112‘ (SCPC) – Informa Nome, Data de Nascimento e Documentos existentes.
‘Tipo 113‘ (SCPC) – Indica a quantidade de Ocorrências, Protestos, Consultas Anteriores e Central de Crédito existentes.
‘Tipo 121‘ (SCPC) – Relaciona os Nomes Foneticamente Iguais ao fornecido. Se não existir nomes iguais, esse tipo não será enviado.
‘Tipo 122‘ (SCPC) – Informa o Nome do Cônjuge e/ou Naturalidade. Se não existir, não será enviado.
‘Tipo 123‘ (SCPC) – Relaciona as Informações Complementares. Se não existir, não será enviado.
- TIPO 123 NAO IMPLEMENTADO
‘Tipo 124‘ (SCPC) – Relaciona as Ocorrências de Débitos e Títulos Protestados. Se não existir, não será enviado.
- n = T124_NUMOCORRENCIAS – Contador do número de Ocorrências.
‘Tipo 125‘ (SCPC) – Relaciona as Consultas Anteriores. Se não existir, não será enviado. Caso existam, serão enviadas, independente da existência de Débitos no SCPC.
- n = T125_NUMCONSULTAS – Contador do número de Consultas.
‘Tipo 126‘ (SCPC) – Relaciona os Créditos Concedidos. Se não existir, não será enviado Tipo 210 (SCPC | Cheque): indica que não existem informações para os Documentos solicitados.
‘Tipo 210‘
- Erro 210 TRATADO POR EXCEÇÃO DE INFRAESTRUTURA.
‘Tipo 211‘ (SCPC | Cheque) – Indica que para o Documento, Banco, Agência, Conta Corrente e Número do Cheque informados, consta Cheque Sustado. Se não existir informações, não será enviado
‘Tipo 212‘ (SCPC | Cheque) – Indica que para o Banco, Agência e Conta Corrente Informados, Consta outro Documento diferente do informado. Se não existir informações, não será enviado.
‘Tipo 214‘ (SCPC | Cheque) – Informa a quantidade de Devoluções Informadas pelo CCF – Cadastro de Cheques sem Fundo. Se não existir informações, não será enviado
‘Tipo 215‘ (SCPC | Cheque) – Indica a existência de Devoluções informadas pelos Associados e/ou Informações Complementares. Não existindo nenhum dos dois tipos de informações, não será enviado.
‘Tipo 216, 217 e 218‘ (SCPC | Cheque) – Indica a existência de Cheques sustados pelo motivo 21 (Contra-ordem ou Oposição ao pagamento). Se não existir, não serão enviados. Estas informações não são desabonadoras ao cliente.
‘Tipo 216, 217 e 218‘ (SCPC | Cheque) – Indica a existência de cheques sustados pelo motivo 21 (Contra-ordem ou Oposição ao pagamento). Se não existir, não serão enviados. Estas informações não são desabonadoras ao cliente.
‘Tipo 216, 217 e 218‘ (SCPC | Cheque) – Indica a existência de cheques sustados pelo motivo 21 (Contra-ordem ou Oposição ao pagamento). Se não existir, não serão enviados. Estas informações não são desabonadoras ao cliente.
‘Tipo 219‘ (SCPC | Cheque) – Indica que o Cheque Informado já foi consultado e/ou a Conta Corrente informada já foi consultada com Documento diferente do informado. Se não existir, não será enviado. Estas informações não são desabonadoras ao cliente.
- n = T219_NUMOCORRENCIAS – Contador do número de Ocorrências.
‘Tipo 220‘ (SCPC | Cheque) – Indica quantidade de Consultas Anteriores, totalizadas por Tipo de Informação: Cheques Anteriores; Cheques no Dia; Cheques pré-Datados, quando as informações pertencerem ao próprio consulente. Se não existir não será enviado.
‘Tipo 221‘ (SCPC | Cheque) – Confirmação de Dados Cadastrais de Pessoa Física, para o documento informado. Se não existir informações, não será enviado.
‘Tipo 223‘ (SCPC | Cheque) – Confirmação dos Dados de Instalação do Telefone Informado. Se não existir informações, não será enviado.
‘Tipo 224‘ (SCPC | Cheque) – Apresenta o Nome, Endereço da Agência Bancária e Telefones para o Código da Agência informado. Se não existir informações, não será enviado.
‘Tipo 241‘ (SCPC | Cheque) – Informa o Nome, Data de Nascimento e Documentos existentes.
‘Tipo 242‘ (SCPC | Cheque) – Relaciona as Devoluções Informadas pelo CCF – Cadastro de Cheques sem Fundo. Se não existir informações, não será enviado.
‘Tipo 243‘ (SCPC | Cheque) – Relaciona as Informações Complementares. Se não existir, não será enviado.
‘Tipo 244‘ (SCPC | Cheque) – Relaciona as Devoluções informadas pelos associados e os Cheques Sustados pelo motivo 21, informados pelo próprio consulente. Se não existir, não será enviado.
- n = T244_NUMOCORRENCIAS – Contador do número de ocorrências.
‘Tipo 245‘ (SCPC | Cheque) – Relaciona os Cheques Sustados pelo motivo 21 (Contra-Ordem ou Oposição ao Pagamento). Se não existir informações, não será enviados. Esta informação não é desabonadora ao cliente.
- n = T245_NUMOCORRENCIAS – Contador do número de Ocorências.
‘Tipo 246‘ (SCPC | Cheque) – Relaciona a Data, Hora e se pertence ao próprio consulente, os Cheques já Consultados. Se não existir informações, não será enviado. Esta informação não é desabonadora ao cliente.
- n = T246_NUMCHEQUES – Contador do número de ocorrências.
‘Tipo 247‘ (SCPC | Cheque) – Relaciona os Documentos, diferente do informado, que já consultaram a Conta Corrente informada. Se não existir informações, não será enviado. Esta informação não é desabonadora ao cliente.
- n = T247_NUMHISTORICO – Contador do número de Ocorrências de Histórico.
‘Tipo 248‘ (SCPC | Cheque) – Relaciona as Consultas Anteriores, totalizadas por Tipo de Informação: Cheques Anteriores; Cheques no Dia; Cheques pré-Datados, quando as informações pertencerem ao próprio consulente. Se não existir não será enviado.
- n = T248_NUMCONSULTAS – Contador do número de Consultas.
‘Tipo 600‘ (SCPC + SCPC | Cheque + SCPC | Score) – Resultado do SCPC | Score para o CPF consultado.
Layout de Acesso disponível para Validação:
Download Solicite o manual 0117V10.03 - Consulta SCPC INTEGRADO - CSR60.pdf à Boavista Serviços.