Páginas filhas
  • SERASA Relato

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Configurando acesso ao SERASA

...

RELATO

 


  • A configuração dos acessos externos SERASA

...

  • RELATO deve inicialmente passar por uma indicação para a JVM do path do arquivo de properties, do certificado e do log4j; veja abaixo o setting para a JVM (‘-D option‘):

...

1

...

3


Bloco de código
languagejava
linenumberstrue
-Dserasa-relato.datadir=/home/jboss/intellector
-Dlog4j.configuration=/home/jboss/intellector
-Daccess.ssl=/home/jboss/intellector/ssl

...


Para o uso direto em testes,

...

deve usaríamos(e.g. /home/jboss/intellector)

...

.


Bloco de código
languagejava
linenumberstrue
java -jar -cp. -Dserasa-relato.datadir=/home/jboss/intellector SerasaRelato.jar
Aviso
Usando a execução acima, não esqueça de colocar no CLASSPATH todas as dependências; e o mesmo para JAVA_OPTS no JBoss.

 


Propriedades para o Acesso Seguro (HTTPS)

‘https.properties‘ –

...

Arquivos de propriedades do certificado e conexão ‘host-to-host‘ com a SERASA

...

 

.


Bloco de código
language
java
html/xml
linenumberstrue
# Arquivo de properties para o SERASA 
PJ # $Revision: 1.2 $
RELATO
# 
  
# Informações de autenticacao e certificados do serasa 
user.url=
sitenet07
sitenethomologa.serasa.com.br 
user.root=/Homologa/consultahttps
user.jks=lVaxvlqeVH5ugq/rba5vYvSWhu8kYJqO3Q==O63WLqgqpA== 
user.cert=/home/jboss/intellector-files/serasa.jks 
#user.serasa.cert=e:/tools/desv/ws_tec/serasa/resources/serasa.jks 
Dica

Existe no Site do Intellector, uma funcionalidade para configurar os arquivos de propriedades, lá você poderá gerar a senha criptografada.

  
Aviso

 

...

 

...

Configurando SSL e HTTPS

...

: sem Certificado ’não funciona’ e, entenda bem o conceito, leia sobre isso. Esse certificado é fornecido pela própria entidade, tipo host<->host.

...

  

...


Auditoria dos dados de Acesso

Para efeitos de auditoria, esse plugin persiste os dados da string de Envio e Retorno do acesso (dados brutos), sendo possível consultar esses dados via web service de Auditoria e verificar ou fazer uso dessas strings. O conteúdo dessa string bruta é composto pelos campos que compõe o layout de entrada e saída, especificada na documentação do SERASA.

...




Layouts para o Acesso

 

...


  • Nos Layouts 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.

...

‘layout_p002.xml‘ – Header do Registro

...

P002 – IP20(RELATO)/P8GL.


Bloco de código
languagehtml/xml
linenumberstrue
<?xml version="1.0" encoding="ISO-8859-1"?>

...


<!-- layout_p002.xml - Registro P002 - Outras Opcoes de Consulta Pessoa Juridica -->

...

<serasa-relato>
	<field>
		<id>P002_REGISTRO</id>
		<value>P002</value>
		<size>4</size>
		<type>S</type>
	</field>
	<field>
		<id>P002_COD1</id>
		<value>IP20</value>
		<size>4</size>
		<type>S</type>
	</field>
	<field>
		<id>P002_CHAVE1</id>
		<value>Q</value>
		<size>21</size>
		<type>S</type>	
		<!-- chave de acesso para consultar a 1a opcao se necessario --> 
	</field>
	<field>
		<!-- codigo da 2a opcao para consultar outro produto, feature ou base (ver tabela 30 -->
		<id>P002_COD2</id>
		<value>P8GL</value>
		<size>4</size>
		<type>S</type>
	</field>
	<field>
		<!-- chave de acesso para consultar a 

...

2a opcao se necessario -->
		<id>P002_CHAVE2</id>

...

		<value> </value>
		<size>21</size>

...


		<type>S</type>	
	</field>

...


	<field>
		<!-- codigo da 

...

3a opcao para consultar outro produto, feature ou base (ver tabela 30 -->

...


		<id>P002_COD3</id>
		<value> </value>
		<size>4</size>
		<type>S</type>
	</field>
	<field>
		<!-- chave de acesso para consultar a 

...

3a opcao se necessario -->

...

		<id>P002_CHAVE3</id>
		<value> </

...

value>
		<size>21</size>

...


		<type>S</type>

...

	
	</field>

...


...

	
	<field>
		<!-- codigo da 

...

4a opcao para consultar outro produto, feature ou base (ver tabela 30 -->

...


		<id>P002_COD4</id>
		<value> </value>
		<size>4</size>
		<type>S</type>
	</field>
	<field>
		<!-- chave de acesso para consultar a 

...

4a opcao se necessario -->

...


		<id>P002_CHAVE4</id>
		<value> </value>
		<size>21</size>
		<type>S</type>	
	</field>
	
	<field>
		<id>P002_FILLER</id>
		<value> </value>
		<size>11</size>
		<type>S</type>	
	</field>
</serasa-relato>

  

  • Arquivo layout_p009.xml - Opções de Monitoramento. 
  • Verificar no layout as opções para montagem do registro.


  •  Arquivo layoutPJ_b49c.xml - Header Transacional para a Consulta Pessoa Jurídica.


Bloco de código
languagehtml/xml
linenumberstrue
<?xml version="1.0" encoding="ISO-8859-1"?> 
<serasapj> 
    <field> 
        <!-- header Credit Bureau -->
        <name>B49C</name> 
        <size>4</size> 
        <type>S</type> 
    </field> 
    <field> 
    

...

 

...

   

...

<!-- 

...

Filler -->
        <name> </name> 
        

...

<size>6</size> 
        <type>S</type> 
    </field> 

...

 

  • Arquivo layout_p006.xml - Opções de consulta do Cadastro Sintético

...

languagehtml/xml

...

    <field> 
        <!-- NUM_DOC=CPF; está neste XML ilustrando, pois o mesmo é tratado numa -->
        <!-- 

...

tag 

...

de entrada, 

...

serve 

...

como 

...

referencia 

...

pra 

...

substituicao do 

...

real CPF -->
        

...

<name>cpf</name> 
        

...

<size>15</size> 
        

...

<type>N</type> 
    </field> 
    <field> 
    <!-- 

...

Tipo Pessoa F=pessoa fisica; J=pessoa juridica -->
        

...

<name>J</name> 
        

...

<size>1</size> 
        <type>S</type> 
    </field>

...

 

...

 

...

languagehtml/xml

...

 
    <field> 
        <!-- 

...

Base 

...

de 

...

consulta -->
        

...

<name>C</name> 
        

...

<size>6</size> 
        <type>S</type> 
    </field> 
    <field> 
    

...

<!-- 

...

Modalidade -->
        

...

<name>FI</name> 
        

...

<size>2</size> 
        <type>S</type> 
    </field> 
    <field> 
    <!-- valor da consulta 

...

--

...

>
        <name>8888888</name> 
        <size>7</size> 
  

...

 

...

 

...

 

...

 

...

 

...

 

...

<type>N</type> 

...


 

...

 

...

 

...

 </field> 
    <field> 
    <!-- Centro de custo -->
        <name> 

...

</name> 
        

...

<size>12</size> 
        

...

<type>S</type> 
    </field> 
    <field> 
    <!-- 

...

Codificado (S/N) -->
        

...

<name>N</name> 
        <size>1</size> 
        <type>S</type> 
    </field> 
    <field> 
    

...

<!-- 

...

quantidade de 

...

registros por transmissao de dados -->
        

...

<name>99</name> 
        

...

<size>2</size> 
        

...

<type>N</type> 
    </field> 
    <field> 
    <!--

...

 Deseja dialogo de comunicacao (S/N) -->
        

...

<name>S</name> 
        

...

<size>1</size> 
        <type>S</type> 
    </field> 
    <field> 
    <!-- 

...

Funcao: INI,CON,ENC,ERR,TMD,FIM -->
        

...

<name>INI</name> 
        

...

<size>3</size> 
        

...

<type>S</type> 
    </field> 
    <field> 
    <!-- 

...

Tipo de 

...

consulta -->
        

...

<name>A</name> 
        

...

<size>1</

...

size>> 
        <type>S</type> 
    </field> 
    <field> 
    <!-- 

...

atualiza dados enviados (S/N) -->
        <name>N</name> 
        <size>1</size> 
        <type>S</type> 
    </field> 
    <field> 
    <!-- 

...

Filler (2) -->
        

...

<name> </name> 
        

...

<size>42</size> 
        

...

<type>S</type> 
    </field> 
    <field> 
    <!-- 

...

quantidade 

...

de 

...

cheques sequenciais -->
        

...

<name>00</name> 
        

...

<size>2</size> 
        

...

<type>N</type> 
    </field> 
    <field> 
    <!-- endereço 

...

+ telefone -->
        

...

<name>N</name> 
        

...

<size>1</size> 
        <type>S</type> 
    </field> 
    <field> 
    <!-- 

...

filler 

...

(3) 

...

-->
        

...

<name> </name> 
        

...

<size>8</

...

size> 
        <type>S</type> 
    </field> 
    <field> 
    <!-- 

...

conta corrente -->
        

...

<name>0000000000</name> 
        

...

<size>10</size> 
        

...

<type>N</type> 
    </field> 
    <field> 
    <!-- 

...

digito da conta corrente -->
        

...

<name>0</name> 
        

...

<size>1</size> 
        

...

<type>N</type> 
    </field> 
    <field> 
    <!-- 

...

agencia -->
        

...

<name>0000</name> 
        

...

<size>4</size> 
        <type>N</type> 
    </field> 
    <field> 
    <!-- 

...

filler 

...

(4) 

...

-->
        

...

<name> </name> 
        

...

<size>61</size> 
        

...

<type>N</type> 
    </field> 
    <field> 
    <!-- 

...

quantidade de compromisso encontrados -->
        <name> </name>  
        

...

<size>2</size> 
        

...

<type>N</type> 
    </field> 
    <field> 
    <!-- tem 

...

anotacoes negativas (S/N/B) -->
        

...

<name> </name> 
        

...

<size>1</size> 
        

...

<type>S</type> 
    </field> 
    <field> 
    <!-- 

...

anotacoes 

...

de 

...

cheques (S/N/B) -->
        <name> 

...

</name> 
        <size>1</size> 
        

...

<type>S</type> 
    </field> 
    <field> 
    <!-- data da 

...

consulta -->
        

...

<name> </name> 
        

...

<size>8</size> 
        

...

<type>S</type> 
    </field> 
    <field> 
    <!-- 

...

hora da consulta -->
        <name> </name> 
        

...

<size>6</size> 
        

...

<type>S</type> 
    </field> 
    <field> 
    <!-- 

...

total de 

...

registros -->
        <name> </name> 

...


        

...

<size>4</size> 
        

...

<type>S</type> 
    </field> 
    <field> 
    <!-- quantidade de 

...

registros 

...

enviados 

...

por transmissao -->
        <name> </name> 
        

...

<size>4</size> 
        

...

<type>N</type> 
    </field> 
    <field> 
    <!-- 

...

numero de controle de atualizacao 

...

das tabelas -->
        <name> </name> 
        

...

<size>4</size> 
        <type>S</type> 
    </field> 
    <field> 
    <!-- 

...

filler 

...

(5) 

...

-->
        <name> </name> 
        

...

<size>176</size> 
        <type>S</type> 
    </field> 
    <field> 
    <!-- 

...

acessou recheque 

...

online (S/N) -->
        

...

<name>N</name> 
        

...

<size>1</size> 
        <type>S</type> 
    </field> 
    <field> 
    <!-- 

...

tem ocorrencia de

...

 Recheque ultimo ano (S/N) -->
        

...

<name>N</name> 
        

...

<size>1</size> 
        <type>S</type> 
    </field> 
    <field> 
    <!-- 

...

filler (6) -->
        <name> </name> 
        

...

<size>1</size> 
        

...

<type>S</type> 
    </field> 

...

</serasapj>

  

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 da SERASA.
  • ‘Serasa.Properties‘.


Bloco de código
languagehtml/xml
linenumberstrue
# Arquivo de properties para o SERASA RELATO
# 
# type S=string, N=numeric 
# 
# Informaçoes de Login no SERASA 
serasa.login=00186487 
serasa.login_size=8 
serasa.login_type=N 
serasa.password=11003344    
serasa.pass_size=8 
serasa.pass_type=S 
serasa.newpass=  
serasa.npass_size=8 
serasa.npass_type=S


Preenchimento da HashMap de Entrada 
  • ‘Método de acesso no XML

Esse será o método usado pelo reflection da politica.


Bloco de código
languagehtml/xml
linenumberstrue
<!-- metodo de acesso para ser carregado no acesso       -->
<code name="br.com.tools.acessos.serasa.SerasaRelato"/>

  

  • ‘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., ‘B001_GRAFIAserasapf‘. Isso diferencia os vários acessos disponíveis nas políticas. Será usada apenas pelo Compilador e pela política, mas deve ser informado numa construção do acesso (veja Intellector API).


Bloco de código
languagehtml/xml
linenumberstrue
<!-- esse deverah ser sufixo para ser acrescentado ao nome   -->
<!-- vindo da politica, entao irei buscar na hash da politica    -->
<!-- hash.getKey(cnpj_serasa); um de/para para os elementos  -->
<nome_acesso>serasa_relato</nome_acesso>

Exemplo:


Bloco de código
languagejava
linenumberstrue
serIn.put("B49C_NUM_DOC", "0000000000191");

 Exception:


Bloco de código
languagejava
linenumberstrue
throw new LayoutException("Erro preenchendo HashMap " + this.toString());
Dica
 Contador’ – sempre existe um atributo no XML nomeado ’counter’ como indexador dos registros

  

Dados de Entrada do Acesso
 
  • Para o preenchimento da HashMap de entrada, é imprescindível entender o layout B49C e, devem conter as seguintes chaves de entrada (UPPERCASE); cada campo contém os seguintes dados, sendo eles validados pelo Compilador:
    1. ‘description‘  – Propriedade da tag “field”, contem a Descrição do Campo
    2. ‘type‘ –            Propriedade da tag “field”, define o Tipo de Dado Pure Java, como StringIntegerDoubleDate e Boolean.
    3. ‘format –          Propriedade da tag “field”, contem o Formato do Dado; atualmente, só os dados de Datas tem esse campo preenchido.
    4. ‘field‘ –            Tag relativa ao Nome do Campo, escrito em maiúsculas (não necessariamente), como por ex. ‘TPRESPOSTA‘.


Bloco de código
languagehtml/xml
linenumberstrue
<!-- contem os dados necessarios para entrada no serasa PJ       -->
<entrada> 
    <!-- posso testar pelo valor obrigatorio dentro de cada     -->
    <!-- acesso,  ele dever ser "CNPJ"                           -->
    <field description="CNPJ da empresa consultada" type="String" format="">CNPJ</field> 
</entrada>


Resposta da Consulta

Dados de Saída do Acessos
 
  • A HasMap de saída dos acessos, seguem o mesmo princípio da entrada, exceto pelo fato de que os dados de um determinado 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:
    1. ‘description‘ – Propriedade da tag “register”, contem a Descrição do Campo
    2. ‘type‘ –           Propriedade da tag “register”, define o Tipo de Dado Pure Java, como StringIntegerDoubleDate e Boolean.
    3. ‘format‘–         Propriedade da tag “register”, contem o Formato do Dado; atualmente, só os dados de Datas tem esse campo preenchido.
    4. ‘register‘–       Tag relativa ao Nome do Campo, escrito em maiúsculas (não necessariamente), como por ex. ‘R104_DATAFUNDACAO_

  • Abaixo o XML de saída com o ‘contador‘.
  • Exemplo ‘com‘ um contador… observe que ‘counter=R104_NUMRELAT‘ indica quantos registros, se existirem, ‘R104‘ foram retornados pelo SERASA.


Bloco de código
languagehtml/xml
linenumberstrue
<!-- Obs.: quando counter=alguma_coisa, entao todo o bloco       --> 
<!-- abaixo sofrerah um looping baseado nesse counter            --> 
<saida id="R104" counter="R104_NUMRELAT" >
    <register description="Data da Fundação" type="Date" format="yyyymmdd">R104_DATAFUNDACAO_</register>
    <register description="Data do CNPJ" type="Date" format="yyyymmdd">R104_DATACNPJ_</register>
    <register description="Número de Filiais" type="String" format="">R104_NUMEROFILIAIS_</register>
    <register description="Código SERASA" type="String" format="">R104_CODIGOSERASA_</register>
</saida>

  

  • Exemplo ‘sem‘ um contador… neste caso, ‘counter=”"‘ indica que somente um registro, se existir, foi retornado pela SERASA.


Bloco de código
languagehtml/xml
linenumberstrue
<saida id="R203" counter="" > 
     <register description="Descrição do Período" type="String" format="">R203_DESCREG</register> 
     <register description="Quantidade do período" type="String" format="">R203_QTDPERIODO</register> 
     <register description="Percentual do Período" type="String" format="">R203_PERPERIODO</register> 
</saida>

  

Dica
TODOS os registros seguem a mesma lógica e, o ’XML completo com todos os registros do acesso’, importado pelo Compilador, pode ser baixado aqui.


Registros Disponíveis
 
  • Registro R102 – Relato Endereços
  • Registro R103 – Relato Localização
  • Registro R104 – Relato Atividade
  • Registro R105 – Relato Filiais
  • Registro R107 – Relato Controle Societário (Atualização e Capital Social)
  • R108 – Relato Controle Societário (Detalhes dos Sócios)
  • Registro R109 – Relato Quadro Administrativo (atualização)
  • Registro R110 – Relato Quadro Administrativo (detalhes)
  • Registro R111 – Relato quadro administrativo (Detalhes cont.)
  • Registro R114 – Relato Participações (Detalhes Participantes)
  • Registro R115 – Relato Participações (Detalhes Participantes continuação)
  • Registro R202 – Relato Potencial de Negócios
  • Registro R203 – Relato Histórico de Pagamento
  • Registro R301 – Relato Controle de Consultas Passagem
  • Registro R302 – Relato Últimas Consultas
  • Registro R381 – Grafias
  • Registro R401 – RELATO – RiskScoring (12 meses)
  • Registro R412 – RELATO – Informações do Concentre – Resumo
  • Registro R430 – P8GL– Parecer de Crédito Padrão
    • Variáveis

      VariávelDescriçãoTipoFormato
      R430_SUBTPREG_Subtipo do registroString
      R430_DTCALCLIM_Data cálculo limite créditoDateyyyyMMdd
      R430_HRCALCLIM_Hora cálculo limite créditoInteger
      R430_VLCALCLIM_Valor cálculo limite créditoDouble
      R430_OBSERV_ObservaçãoString



  • 1.n = ‘R412_NUMOCORR‘ – contator do número de ocorrências do Concentre
Dica

 A variável abaixo deverá ser preenchida com total valor, somente se a discriminação for ’PROTESTO’; caso contrário, virá ’zera

 

Propriedades Configuráveis do Acesso

 

 

...

  • 1.R412_TOTALVALOR_n